public void traverseRete(Rete rete, BiConsumer<BaseNode, String> consumer) { for (EntryPointNode entryPointNode : rete.getEntryPointNodes().values()) { dumpNode( entryPointNode, "", new HashSet<BaseNode>(), consumer); } }
public ObjectTypeNode getObjectTypeNode(KieBase kbase, String nodeName) { List<ObjectTypeNode> nodes = ((KnowledgeBaseImpl)kbase).getRete().getObjectTypeNodes(); for ( ObjectTypeNode n : nodes ) { if ( ((ClassObjectType)n.getObjectType()).getClassType().getSimpleName().equals( nodeName ) ) { return n; } } return null; }
public static void compare(Rete rete1, Rete rete2) { for (EntryPointNode epn1 : rete1.getEntryPointNodes().values()) { EntryPointNode epn2 = rete2.getEntryPointNode( epn1.getEntryPoint() ); compareNodes( epn1, epn2 ); } }
public static void main(String[] args) { Bean testbean = new Bean(); testbean.setName("test"); Rete engine = new Rete(); engine.defclass("bean", "Bean", null, false); engine.definstance("bean", testbean, false); engine.eval("(facts)"); }
import jess.*; public class Main { public static void main( String[] args ) throws Exception { Rete rete = new Rete(); Value val = rete.batch("security.clp"); Data data = new Data(); data.setA( 42 ); data.setB( 24 ); rete.add( data ); rete.run(); System.out.println( "result = " + data.getRes() ); } }
import jess.*; // ... // Get Jess ready Rete engine = new Rete(); engine.batch("dates.clp"); engine.watchAll(); // Plug in the "chosen date" Date chosenDate = new Date(113, 4, 5); Fact fact = new Fact("chosendate", engine); fact.setSlotValue("__data", new Value(new ValueVector().add(chosenDate), RU.LIST)); engine.assertFact(fact); // Run the rule and report the result int count = engine.run(); if (count > 0) { int score = engine.getGlobalContext().getVariable("*var*").intValue(null); System.out.println("Score = " + score); } else { System.out.println("No matching date found."); }
@Test(timeout = 40000L) public void test() { StringBuilder sb = new StringBuilder( 400 ); sb.append( "global java.util.List list;\n" ); for (int i = 0; i < 10; i++) { sb.append( getRule( i, "" ) ); } KieBase kbase = new KieHelper().addContent( sb.toString(), ResourceType.DRL ) .build( MultithreadEvaluationOption.YES ); EntryPointNode epn = ((InternalKnowledgeBase) kbase).getRete().getEntryPointNode( EntryPointId.DEFAULT ); ObjectTypeNode otn = epn.getObjectTypeNodes().get( new ClassObjectType( Integer.class ) ); assertTrue( ( (CompositePartitionAwareObjectSinkAdapter) otn.getObjectSinkPropagator() ).isHashed() ); KieSession ksession = kbase.newKieSession(); assertTrue( ( (InternalWorkingMemory) ksession ).getAgenda().isParallelAgenda() ); List<Integer> list = new DebugList<Integer>(); ksession.setGlobal( "list", list ); for (int i = 0; i < 10; i++) { ksession.insert( i ); ksession.insert( "" + i ); } ksession.fireAllRules(); assertEquals(10, list.size()); }
// Create a text area; you'll need to add it to your GUI, of course TextArea ta = new TextArea(20, 80); // This is a sort of adapter that lets Jess print into a textarea. // There's also a JTextAreaWriter for Swing GUIs TextAreaWriter taw = new TextAreaWriter(ta); // Create a rule engine instance Rete engine = new Rete(); // Connect the "t" router to the TextArea. From this point on, // Jess code that executes "(printout t ..." will send its output // to the TextArea engine.addOutputRouter("t", taw);
kBase.getRete().addObjectSink( epn ); KieSession ksession = kBase.newKieSession(); FactHandle f1 = ksession.insert( "f1" );
EntryPointNode epn = kbase.getRete().getEntryPointNode( EntryPointId.DEFAULT ); ObjectTypeNode otn = epn.getObjectTypeNodes().get( new ClassObjectType( Long.class) ); BetaNode beta1 = (BetaNode) otn.getObjectSinkPropagator().getSinks()[0];
@Test public void testAssertObjectWithNoMatchingObjectTypeNode() { StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); final Rete rete = kBase.getRete(); assertEquals(1, rete.getObjectTypeNodes().size()); List list = new ArrayList(); ksession.insert(list); ksession.fireAllRules(); assertEquals(1, rete.getObjectTypeNodes().size()); }
public static void checkNodeMemories(KieSession session) { InternalKnowledgeBase kbase = (InternalKnowledgeBase)session.getKieBase(); for (EntryPointNode entryPointNode : kbase.getRete().getEntryPointNodes().values()) { checkNodeMemory( (InternalWorkingMemory) session, entryPointNode ); } }
public ObjectTypeNode getObjectTypeNode(KieBase kbase, Class<?> nodeClass) { List<ObjectTypeNode> nodes = ((KnowledgeBaseImpl)kbase).getRete().getObjectTypeNodes(); for ( ObjectTypeNode n : nodes ) { if ( ((ClassObjectType)n.getObjectType()).getClassType() == nodeClass ) { return n; } } return null; } }
@Before public void setUp() throws Exception { this.kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); this.buildContext = new BuildContext( kBase ); this.entryPoint = buildContext.getKnowledgeBase().getRete().getEntryPointNodes().values().iterator().next();; }
public ObjectTypeNode getObjectTypeNode(KieBase kbase, Class<?> nodeClass) { List<ObjectTypeNode> nodes = ((KnowledgeBaseImpl)kbase).getRete().getObjectTypeNodes(); for ( ObjectTypeNode n : nodes ) { if ( ((ClassObjectType)n.getObjectType()).getClassType() == nodeClass ) { return n; } } return null; } }
private void checkDrl(String drl) { InternalKnowledgeBase kbase = (InternalKnowledgeBase) new KieHelper().addContent( drl, ResourceType.DRL ) .build( MultithreadEvaluationOption.YES ); Rete rete = kbase.getRete(); for (EntryPointNode entryPointNode : rete.getEntryPointNodes().values()) { traverse( entryPointNode ); } }
public ObjectTypeNode getObjectTypeNode(KieBase kbase, Class<?> nodeClass) { List<ObjectTypeNode> nodes = ((KnowledgeBaseImpl)kbase).getRete().getObjectTypeNodes(); for ( ObjectTypeNode n : nodes ) { if ( ((ClassObjectType)n.getObjectType()).getClassType() == nodeClass ) { return n; } } return null; } }
@Before public void setUp() throws Exception { this.kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); this.pctxFactory = kBase.getConfiguration().getComponentFactory().getPropagationContextFactory(); this.buildContext = new BuildContext(kBase); this.entryPoint = buildContext.getKnowledgeBase().getRete().getEntryPointNodes().values().iterator().next();; }
public static ObjectTypeNode getObjectTypeNode(KieBase kbase, Class<?> nodeClass) { List<ObjectTypeNode> nodes = ((KnowledgeBaseImpl)kbase).getRete().getObjectTypeNodes(); for ( ObjectTypeNode n : nodes ) { if ( ((ClassObjectType)n.getObjectType()).getClassType() == nodeClass ) { return n; } } return null; }
@Test public void testAdd() { /* * create a RuleBase with a single ObjectTypeNode we attach a * MockObjectSink so we can detect assertions and retractions */ InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); BuildContext context = new BuildContext(kBase); NodeFactory nFacotry = kBase.getConfiguration().getComponentFactory().getNodeFactoryService(); EntryPointNode entryPoint = context.getKnowledgeBase().getRete().getEntryPointNodes().values().iterator().next(); final ObjectTypeNode objectTypeNode = nFacotry.buildObjectTypeNode( 0, entryPoint, new ClassObjectType( Object.class ), context ); objectTypeNode.attach(context); final MockObjectSink sink = new MockObjectSink(); objectTypeNode.addObjectSink( sink ); kBase.newKieSession(); // objectTypeNode. }