public void updateSinkOnAttach( BuildContext context, InternalWorkingMemory workingMemory ) { final PropagationContext propagationContext = new PropagationContextImpl(workingMemory.getNextPropagationIdCounter(), PropagationContext.RULE_ADDITION, null, null, null); this.updateSinkOnAttach( context, propagationContext, workingMemory ); propagationContext.evaluateActionQueue( workingMemory ); }
private void updatePropagations( BaseNode baseTerminalNode, BuildContext context ) { baseTerminalNode.networkUpdated( new UpdateContext() ); for ( InternalWorkingMemory workingMemory : context.getWorkingMemories() ) { final PropagationContext propagationContext = new PropagationContextImpl(workingMemory.getNextPropagationIdCounter(), PropagationContext.RULE_ADDITION, null, null, null); for ( BaseNode node : context.getNodes() ) { node.updateSinkOnAttach( context, propagationContext, workingMemory ); } propagationContext.evaluateActionQueue( workingMemory ); } }
public void build(BuildContext context, BuildUtils utils, RuleConditionElement rce) { NamedConsequence namedConsequence = (NamedConsequence) rce; RuleTerminalNode terminalNode = buildTerminalNodeForNamedConsequence(context, namedConsequence); terminalNode.attach(context); terminalNode.networkUpdated(new UpdateContext()); // adds the terminal node to the list of nodes created/added by this sub-rule context.addNode(terminalNode); for ( InternalWorkingMemory workingMemory : context.getWorkingMemories() ) { final PropagationContext propagationContext = new PropagationContextImpl(workingMemory.getNextPropagationIdCounter(), PropagationContext.RULE_ADDITION, null, null, null); for ( BaseNode node : context.getNodes() ) { node.updateSinkOnAttach( context, propagationContext, workingMemory ); } propagationContext.evaluateActionQueue( workingMemory ); } }