public LeftBuilder update(Object... objects) { for ( Object object : objects ) { InternalFactHandle fh = (InternalFactHandle) wm.getFactHandle( object ); LeftTuple leftTuple = fh.getFirstLeftTuple(); leftTuple.setPropagationContext( new PhreakPropagationContext() ); leftTuples.addUpdate( leftTuple ); } return this; }
public LeftBuilder delete(Object... objects) { for ( Object object : objects ) { InternalFactHandle fh = (InternalFactHandle) wm.getFactHandle( object ); LeftTuple leftTuple = fh.getFirstLeftTuple(); leftTuple.setPropagationContext( new PhreakPropagationContext() ); leftTuples.addDelete( leftTuple ); } return this; }
@Test public void testPopulatedSharedLiaNodeNoBeta() throws Exception { InternalKnowledgeBase kbase1 = buildKnowledgeBase("r1", " A()\n"); InternalWorkingMemory wm = ((InternalWorkingMemory)kbase1.newKieSession()); List list = new ArrayList(); wm.setGlobal("list", list); A a1 = new A(1); InternalFactHandle fh1 = (InternalFactHandle) wm.insert(a1); A a2 = new A(2); InternalFactHandle fh2 = (InternalFactHandle) wm.insert(a2); wm.fireAllRules(); assertEquals( 2, list.size() ); kbase1.addPackages( buildKnowledgePackage("r2", " a : A()\n") ); wm.fireAllRules(); assertEquals( 4, list.size() ); kbase1.removeRule("org.kie", "r1"); kbase1.removeRule("org.kie", "r2"); list.clear(); assertNull( fh1.getFirstLeftTuple() ); assertNull( fh2.getFirstLeftTuple() ); wm.update( fh1,a1 ); wm.update( fh2,a2 ); wm.fireAllRules(); assertEquals( 0, list.size() ); }
LeftTuple first = handle.getFirstLeftTuple(); assertTrue( first instanceof RuleTerminalNodeLeftTuple ); assertEquals( "Check", ((RuleTerminalNodeLeftTuple) first).getRule().getName() );
liaNode.retractLeftTuple( fh2.getFirstLeftTuple(), context, ksession ); assertFalse( liaMem.getSegmentMemory().isSegmentLinked() ); liaNode.retractLeftTuple( fh3.getFirstLeftTuple(), context, ksession ); assertTrue( liaMem.getSegmentMemory().isSegmentLinked() ); liaNode.retractLeftTuple( fh4.getFirstLeftTuple(), context, ksession ); assertFalse( liaMem.getSegmentMemory().isSegmentLinked() );