@Test public void testDateExpires() throws Exception { WorkingMemory wm = (WorkingMemory) new KnowledgeBaseImpl("x", null).newKieSession(); final RuleImpl rule = new RuleImpl( "myrule" ); assertTrue( rule.isEffective(null, new RuleTerminalNode(), wm ) ); final Calendar earlier = Calendar.getInstance(); earlier.setTimeInMillis( 10 ); rule.setDateExpires( earlier ); assertFalse( rule.isEffective(null, new RuleTerminalNode(), wm ) ); final Calendar later = Calendar.getInstance(); later.setTimeInMillis( later.getTimeInMillis() + 100000000 ); rule.setDateExpires( later ); assertTrue( rule.isEffective(null, new RuleTerminalNode(), wm ) ); }
Iterator it = TerminalNodeIterator.iterator(kbase); for ( TerminalNode node = (TerminalNode) it.next(); node != null; node = (TerminalNode) it.next() ) { nodes.add( ((RuleTerminalNode) node).getRule().getName() );
networkNode = new RuleTerminalNode( id, leftTupleSource, rule, new GroupElement( Type.AND ), 0, buildContext ); break; ((LeftTupleSource) networkNode).attach(buildContext); } else { ((RuleTerminalNode) networkNode).attach(buildContext);
public SalienceEvaluator(InternalKnowledgeBase kBase, RuleBuildContext context, Rule rule, Salience salience, Person person) { wm = ((StatefulKnowledgeSessionImpl)kBase.newKieSession()); this.context = context; final InternalFactHandle f0 = (InternalFactHandle) wm.insert( person ); tuple = new LeftTupleImpl( f0, null, true ); this.salience = salience; this.halt = false; this.error = false; this.result = (person.getAge() + 20) / 2; RuleTerminalNode rtn = new RuleTerminalNode(); rtn.setSalienceDeclarations( context.getDeclarationResolver().getDeclarations( context.getRule() ).values().toArray( new Declaration[1] ) ); item = new AgendaItemImpl(0, tuple, 0, null, rtn, null); }
@Test public void testRtnNoConstraintsNoWatches() { String rule1 = "A()"; KieBase kbase = getKnowledgeBase(rule1); InternalWorkingMemory wm = ((InternalWorkingMemory)kbase.newKieSession()); ObjectTypeNode otn = getObjectTypeNode(kbase, "A" ); assertNotNull( otn ); LeftInputAdapterNode liaNode = ( LeftInputAdapterNode ) otn.getObjectSinkPropagator().getSinks()[0]; RuleTerminalNode rtNode = ( RuleTerminalNode ) liaNode.getSinkPropagator().getSinks()[0]; assertEquals( EmptyBitMask.get(), rtNode.getDeclaredMask() ); assertEquals( EmptyBitMask.get(), rtNode.getInferredMask() ); }
final RuleTerminalNode node = new RuleTerminalNode(idGenerator.getNextId(), new MockTupleSource(idGenerator.getNextId()), rule, data.size()); node.assertLeftTuple(tuple, context, ksession);
final RuleTerminalNode node = new RuleTerminalNode(idGenerator.getNextId(), new MockTupleSource(idGenerator.getNextId()), rule1, node.assertLeftTuple( tuple1, context1, ksession ); context1.setFactHandle( handle1 ); node.retractLeftTuple( tuple1, context1, ksession ); node.assertLeftTuple( tuple1, context1, ksession ); node.retractLeftTuple( tuple1, context1, ksession );
RuleTerminalNode rtNode1 = ( RuleTerminalNode ) liaNode1.getSinkPropagator().getSinks()[0]; assertEquals( calculatePositiveMask(classType, list("c"), sp), rtNode1.getDeclaredMask() ); assertEquals( calculatePositiveMask(classType, list("b", "c"), sp), rtNode1.getInferredMask() ); assertEquals( calculateNegativeMask(classType, list("!a"), sp), rtNode1.getNegativeMask() ); RuleTerminalNode rtNode2 = ( RuleTerminalNode ) liaNode2.getSinkPropagator().getSinks()[0]; assertEquals( calculatePositiveMask(classType, list("s"), sp), rtNode2.getDeclaredMask() ); assertEquals( calculatePositiveMask(classType, list("a", "s"), sp), rtNode2.getInferredMask() ); assertEquals( calculateNegativeMask(classType, list("!i"), sp), rtNode2.getNegativeMask() ); assertEquals( calculatePositiveMask(classType, list("a", "i", "s"), sp), alphaNode1_2.getInferredMask() ); assertEquals( calculatePositiveMask(classType, list("s"), sp), rtNode2.getDeclaredMask() ); assertEquals( calculatePositiveMask(classType, list("a", "s"), sp), rtNode2.getInferredMask() ); assertEquals( calculateNegativeMask(classType, list("!i"), sp), rtNode2.getNegativeMask() ); assertEquals( calculatePositiveMask(classType, list("c"), sp), rtNode1.getDeclaredMask() ); assertEquals( calculatePositiveMask(classType, list("b", "c"), sp), rtNode1.getInferredMask() ); assertEquals( calculateNegativeMask(classType, list("!a"), sp), rtNode1.getNegativeMask() );
assertEquals(2, join2.getPositionInPath()); RuleTerminalNode rtn1 = (RuleTerminalNode)join2.getSinkPropagator().getSinks()[0]; assertEquals(3, rtn1.getPositionInPath()); assertEquals(2, rtn2.getPositionInPath()); assertEquals(3, ria2.getPositionInPath()); LeftTupleNode[] rtn1PathNodes = rtn1.getPathNodes(); assertEquals( 4, rtn1PathNodes.length ); checkNodePosition(rtn1PathNodes, liaNode); checkNodePosition(rtn1PathNodes, rtn1); LeftTupleNode[] rtn2PathNodes = rtn2.getPathNodes(); assertEquals( 3, rtn2PathNodes.length ); checkNodePosition(rtn2PathNodes, liaNode);
public void evaluate(KnowledgeHelper knowledgeHelper, WorkingMemory w) { // activate rule1 final RuleTerminalNodeLeftTuple tuple1 = new RuleTerminalNodeLeftTuple(new DefaultFactHandle(1, "cheese"), node1, true); node1.assertLeftTuple(tuple1, context0, ksession); }
assertEquals( smems1[1], sm.getFirst() ); JoinNode eNode1 = ( JoinNode ) rtn1.getLeftTupleSource(); JoinNode eNode2 = ( JoinNode ) rtn2.getLeftTupleSource(); assertSame( eNode1, eNode2 );
final RuleTerminalNode node = new RuleTerminalNode(idGenerator.getNextId(), new MockTupleSource(idGenerator.getNextId()), rule, rule.setTimer(new DurationTimer(50)); node.assertLeftTuple(tuple1, context1, ksession);
final RuleTerminalNode node1 = new RuleTerminalNode(3, new MockTupleSource(2), rule1, node1.assertLeftTuple(tuple, context1, ksession); new DefaultFactHandle()); node1.retractLeftTuple(tuple, context0, ksession);
@Test public void testRTNodeNoConstraintsNoPropertySpecific() { String rule = "package org.drools.compiler.integrationtests\n" + "import " + Person.class.getCanonicalName() + "\n" + "rule r1\n" + "when\n" + " Person()\n" + "then\n" + "end\n"; KieBase kbase = new KieHelper(PropertySpecificOption.ALLOWED).addContent(rule, ResourceType.DRL).build(); ObjectTypeNode otn = getObjectTypeNode(kbase, "Person" ); assertNotNull( otn ); LeftInputAdapterNode liaNode = ( LeftInputAdapterNode ) otn.getObjectSinkPropagator().getSinks()[0]; RuleTerminalNode rtNode = ( RuleTerminalNode ) liaNode.getSinkPropagator().getSinks()[0]; assertEquals( AllSetBitMask.get(), rtNode.getDeclaredMask() ); assertEquals( AllSetBitMask.get(), rtNode.getInferredMask() ); }
@Test public void testSimpleExpression() { StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); final Person p = new Person( "mark", "", 31 ); final InternalFactHandle f0 = (InternalFactHandle) ksession.insert( p ); final LeftTupleImpl tuple = new LeftTupleImpl( f0, null, true ); RuleTerminalNode rtn = new RuleTerminalNode(); rtn.setSalienceDeclarations( context.getDeclarationResolver().getDeclarations( context.getRule() ).values().toArray( new Declaration[1] ) ); AgendaItem item = new AgendaItemImpl(0, tuple, 0, null, rtn, null); assertEquals( 25, context.getRule().getSalience().getValue( new DefaultKnowledgeHelper( item, ksession ), context.getRule(), ksession ) ); }
public void evaluate(final KnowledgeHelper knowledgeHelper, final WorkingMemory workingMemory) { /* on first invoke add another one to the agenda */ if (data.size() < 3) { final PropagationContext context2 = pctxFactory.createPropagationContext(0, 0, rule, (RuleTerminalNodeLeftTuple) knowledgeHelper.getTuple(), null); final RuleTerminalNodeLeftTuple tuple2 = new RuleTerminalNodeLeftTuple(new DefaultFactHandle(2, "cheese"), node, true); node.assertLeftTuple(tuple2, context2, (StatefulKnowledgeSessionImpl) workingMemory); } data.add("tested"); }
final RuleTerminalNode node = new RuleTerminalNode(2, new MockTupleSource(2), rule, ((InternalRuleFlowGroup) agendaGroup).setAutoDeactivate(false); agendaGroup.setActive(true); node.assertLeftTuple(tuple, context, ksession); node.assertLeftTuple(tuple, context, ksession); node.assertLeftTuple(tuple, context, ksession);
final MockObjectSink sink = new MockObjectSink(); objectTypeNode.addObjectSink( sink ); final RuleTerminalNode node = new RuleTerminalNode( idGenerator.getNextId(), new MockTupleSource( idGenerator.getNextId() ), rule1, node.assertLeftTuple( tuple1, context1, ksession ); FactHandle logicalHandle2 = ksession.insert( logicalString2 ); node.retractLeftTuple( tuple1, context1, ksession ); node.assertLeftTuple( tuple1, context1, ksession ); logicalHandle1 ); node.retractLeftTuple( tuple1, context1, ksession );
@Test public void testDateEffective() { WorkingMemory wm = (WorkingMemory) new KnowledgeBaseImpl( "x", null).newKieSession(); final RuleImpl rule = new RuleImpl( "myrule" ); assertTrue( rule.isEffective(null, new RuleTerminalNode(), wm ) ); final Calendar earlier = Calendar.getInstance(); earlier.setTimeInMillis( 10 ); rule.setDateEffective( earlier ); assertTrue( rule.isEffective(null, new RuleTerminalNode(), wm ) ); final Calendar later = Calendar.getInstance(); later.setTimeInMillis( later.getTimeInMillis() + 100000000 ); assertTrue( later.after( Calendar.getInstance() ) ); rule.setDateEffective( later ); assertFalse( rule.isEffective(null, new RuleTerminalNode(), wm ) ); }
networkNode = new RuleTerminalNode( id, leftTupleSource, rule, new GroupElement( Type.AND ), 0, buildContext); break; ((LeftTupleSource)networkNode).attach(buildContext); } else { ((RuleTerminalNode)networkNode).attach(buildContext);