public static AddFactConsequence <T, TFact> Add <T, TFact>(Func <T, TFact> factFactory) where T : class where TFact : class { var consequence = new AddFactConsequence <T, TFact>(factFactory); return(consequence); }
public static void Add <T, TFact>(this ThenConfigurator <T> configurator, Func <T, TFact> factFactory) where T : class where TFact : class { AddFactConsequence <T, TFact> consequence = Consequences.Add(factFactory); var consequenceConfigurator = new RuleConsequenceConfiguratorImpl <T>(consequence); configurator.AddConfigurator(consequenceConfigurator); }
public override bool Visit <T, TFact>(AddFactConsequence <T, TFact> consequence, Func <SemanticModelVisitor, bool> next) { _conditionCompiler.MatchJoinNode <T>(joinNode => { AddFactProductionNode <T, TFact> node = _configurator.AddFact(consequence.FactFactory); joinNode.AddActivation(node); }); return(base.Visit(consequence, next)); }
public static FactDesigner <T> Add <T, TAdd>(this FactDesigner <T> designer, Func <TAdd> factFactory) where T : class where TAdd : class { designer.Then(then => { AddFactConsequence <T, TAdd> consequence = Consequences.Add <T, TAdd>(x => factFactory()); var consequenceConfigurator = new RuleConsequenceConfigurator <T>(consequence); then.AddConfigurator(consequenceConfigurator); }); return(designer); }
public static JoinDesigner <TLeft, TRight> Add <TLeft, TRight, T>(this JoinDesigner <TLeft, TRight> designer, Func <Tuple <TLeft, TRight>, T> factFactory) where TLeft : class where TRight : class where T : class { designer.Then((ThenDesigner <TLeft, TRight> then) => { AddFactConsequence <Tuple <TLeft, TRight>, T> consequence = Consequences.Add(factFactory); var consequenceConfigurator = new RuleConsequenceConfigurator <Tuple <TLeft, TRight> >(consequence); then.AddConfigurator(consequenceConfigurator); }); return(designer); }