示例#1
0
        public virtual IReturnVector executeFunction(Rete engine, IParameter[] params_Renamed)
        {
            DefaultReturnVector ret = new DefaultReturnVector();
            bool add = false;

            if (engine.findFunction(name) == null)
            {
                // first we Get the actual function from the shell function
                IFunction[]    functions  = new IFunction[this.functions.Count];
                IParameter[][] parameters = new IParameter[this.functions.Count][];
                for (int i = 0; i < functions.Length; ++i)
                {
                    ShellFunction sf = (ShellFunction)this.functions[i];
                    functions[i]  = engine.findFunction(sf.Name);
                    parameters[i] = sf.Parameters;
                }
                InterpretedFunction intrfunc = new InterpretedFunction(name, this.parameters, functions, parameters);
                intrfunc.configureFunction(engine);
                engine.declareFunction(intrfunc);
                add = true;
            }

            DefaultReturnValue rv = new DefaultReturnValue(Constants.BOOLEAN_OBJECT, add);

            ret.addReturnValue(rv);
            return(ret);
        }
示例#2
0
        public virtual IReturnVector executeFunction(Rete engine, IParameter[] params_Renamed)
        {
            DefaultReturnVector ret = new DefaultReturnVector();
            bool add = false;
            if (engine.findFunction(name) == null)
            {
                // first we Get the actual function from the shell function
                IFunction[] functions = new IFunction[this.functions.Count];
                IParameter[][] parameters = new IParameter[this.functions.Count][];
                for (int i = 0; i < functions.Length; ++i)
                {
                    ShellFunction sf = (ShellFunction) this.functions[i];
                    functions[i] = engine.findFunction(sf.Name);
                    parameters[i] = sf.Parameters;
                }
                InterpretedFunction intrfunc = new InterpretedFunction(name, this.parameters, functions, parameters);
                intrfunc.configureFunction(engine);
                engine.declareFunction(intrfunc);
                add = true;
            }

            DefaultReturnValue rv = new DefaultReturnValue(Constants.BOOLEAN_OBJECT, add);
            ret.addReturnValue(rv);
            return ret;
        }