public virtual void resolveTemplates(Rete.Rete engine) { ICondition[] cnds = Conditions; for (int idx = 0; idx < cnds.Length; idx++) { ICondition cnd = cnds[idx]; if (cnd is ObjectCondition) { ObjectCondition oc = (ObjectCondition) cnd; Deftemplate dft = (Deftemplate) engine.findTemplate(oc.TemplateName); if (dft != null) { oc.Deftemplate = dft; } } else if (cnd is ExistCondition) { ExistCondition exc = (ExistCondition) cnd; Deftemplate dft = (Deftemplate) engine.findTemplate(exc.TemplateName); if (dft != null) { exc.Deftemplate = dft; } } else if (cnd is TemporalCondition) { TemporalCondition tempc = (TemporalCondition) cnd; Deftemplate dft = (Deftemplate) engine.findTemplate(tempc.TemplateName); if (dft != null) { tempc.Deftemplate = dft; } } } }
public static IList<Object> generateFacts(IRule rule, Rete.Rete engine) { List<Object> facts = new List<Object>(); if (rule != null) { ICondition[] conditions = rule.Conditions; for (int idx = 0; idx < conditions.Length; idx++) { ICondition c = conditions[idx]; if (c is ObjectCondition) { ObjectCondition oc = (ObjectCondition) c; Deftemplate tpl = (Deftemplate) engine.findTemplate(oc.TemplateName); if (tpl.ClassName != null) { Object data = generateJavaFacts(oc, tpl, engine); facts.Add(data); } else { IFact data = generateDeffact(oc, tpl, engine); facts.Add(data); } } else if (c is TestCondition) { } } } return facts; }