Search in sources :

Example 51 with LiaNodeMemory

use of org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory in project drools by kiegroup.

the class AddRuleTest method testPopulatedSingleRuleNoSharing.

@Test
public void testPopulatedSingleRuleNoSharing() {
    KieServices ks = KieServices.get();
    KieContainer kieContainer = KieUtil.getKieContainerFromDrls(kieBaseTestConfiguration, KieSessionTestConfiguration.STATEFUL_PSEUDO);
    InternalWorkingMemory wm = (InternalWorkingMemory) kieContainer.newKieSession();
    wm.insert(new A(1));
    wm.insert(new B(1));
    wm.insert(new C(1));
    wm.insert(new C(2));
    wm.insert(new X(1));
    wm.insert(new E(1));
    wm.fireAllRules();
    String rule = buildKnowledgePackageDrl("r1", "   A() B() C(object == 2) X() E()\n");
    ReleaseId releaseId2 = ks.newReleaseId("org.kie", "testPopulatedSingleRuleNoSharing", "2.0.0");
    KieUtil.getKieModuleFromDrls(releaseId2, kieBaseTestConfiguration, KieSessionTestConfiguration.STATEFUL_PSEUDO, new HashMap<>(), rule);
    kieContainer.updateToVersion(releaseId2);
    List<Match> list = new ArrayList<>();
    wm.setGlobal("list", list);
    ObjectTypeNode aotn = getObjectTypeNode(wm.getKnowledgeBase().getRete(), A.class);
    LeftInputAdapterNode liaNode = (LeftInputAdapterNode) aotn.getObjectSinkPropagator().getSinks()[0];
    LiaNodeMemory lm = wm.getNodeMemory(liaNode);
    SegmentMemory sm = lm.getSegmentMemory();
    assertNotNull(sm.getStagedLeftTuples().getInsertFirst());
    wm.fireAllRules();
    assertNull(sm.getStagedLeftTuples().getInsertFirst());
    assertEquals(1, list.size());
    assertEquals("r1", list.get(0).getRule().getName());
}
Also used : SegmentMemory(org.drools.core.reteoo.SegmentMemory) ArrayList(java.util.ArrayList) ObjectTypeNode(org.drools.core.reteoo.ObjectTypeNode) KieServices(org.kie.api.KieServices) ReleaseId(org.kie.api.builder.ReleaseId) LiaNodeMemory(org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory) Match(org.kie.api.runtime.rule.Match) InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) KieContainer(org.kie.api.runtime.KieContainer) LeftInputAdapterNode(org.drools.core.reteoo.LeftInputAdapterNode) Test(org.junit.Test)

Example 52 with LiaNodeMemory

use of org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory in project drools by kiegroup.

the class LinkingTest method testNestedSubNetworkMasks.

@Test
public void testNestedSubNetworkMasks() throws Exception {
    String str = "";
    str += "package org.kie \n";
    str += "import " + A.class.getCanonicalName() + "\n";
    str += "import " + B.class.getCanonicalName() + "\n";
    str += "import " + C.class.getCanonicalName() + "\n";
    str += "import " + X.class.getCanonicalName() + "\n";
    str += "import " + E.class.getCanonicalName() + "\n";
    str += "import " + F.class.getCanonicalName() + "\n";
    str += "import " + G.class.getCanonicalName() + "\n";
    str += "global java.util.List list \n";
    str += "rule rule1 when \n";
    str += "   A() \n";
    str += "   B() \n";
    str += "   exists( C() and X() and exists( E() and F() ) ) \n";
    str += "   G() \n";
    str += "then \n";
    str += "end \n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
    ObjectTypeNode node = getObjectTypeNode(kbase, A.class);
    InternalWorkingMemory wm = ((StatefulKnowledgeSessionImpl) kbase.newKieSession());
    LeftInputAdapterNode liaNode = (LeftInputAdapterNode) node.getObjectSinkPropagator().getSinks()[0];
    JoinNode bNode = (JoinNode) liaNode.getSinkPropagator().getSinks()[0];
    ExistsNode exists1n = (ExistsNode) bNode.getSinkPropagator().getSinks()[1];
    JoinNode cNode = (JoinNode) bNode.getSinkPropagator().getSinks()[0];
    JoinNode dNode = (JoinNode) cNode.getSinkPropagator().getSinks()[0];
    ExistsNode exists2n = (ExistsNode) dNode.getSinkPropagator().getSinks()[1];
    JoinNode eNode = (JoinNode) dNode.getSinkPropagator().getSinks()[0];
    JoinNode fNode = (JoinNode) eNode.getSinkPropagator().getSinks()[0];
    RightInputAdapterNode riaNode2 = (RightInputAdapterNode) fNode.getSinkPropagator().getSinks()[0];
    RightInputAdapterNode riaNode1 = (RightInputAdapterNode) exists2n.getSinkPropagator().getSinks()[0];
    JoinNode gNode = (JoinNode) exists1n.getSinkPropagator().getSinks()[0];
    RuleTerminalNode rtn = (RuleTerminalNode) gNode.getSinkPropagator().getSinks()[0];
    wm.insert(new A());
    wm.insert(new B());
    wm.insert(new C());
    wm.insert(new X());
    wm.insert(new G());
    wm.flushPropagations();
    LiaNodeMemory liaMem = (LiaNodeMemory) wm.getNodeMemory(liaNode);
    BetaMemory bMem = (BetaMemory) wm.getNodeMemory(bNode);
    BetaMemory exists1Mem = (BetaMemory) wm.getNodeMemory(exists1n);
    BetaMemory cMem = (BetaMemory) wm.getNodeMemory(cNode);
    BetaMemory dMem = (BetaMemory) wm.getNodeMemory(dNode);
    BetaMemory exists2Mem = (BetaMemory) wm.getNodeMemory(exists2n);
    BetaMemory eMem = (BetaMemory) wm.getNodeMemory(eNode);
    BetaMemory fMem = (BetaMemory) wm.getNodeMemory(fNode);
    BetaMemory gMem = (BetaMemory) wm.getNodeMemory(gNode);
    RightInputAdapterNode.RiaNodeMemory riaMem1 = (RightInputAdapterNode.RiaNodeMemory) wm.getNodeMemory(riaNode1);
    RightInputAdapterNode.RiaNodeMemory riaMem2 = (RightInputAdapterNode.RiaNodeMemory) wm.getNodeMemory(riaNode2);
    PathMemory rs = (PathMemory) wm.getNodeMemory(rtn);
    // E and F are not inserted yet, so rule is unlinked
    assertFalse(rs.isRuleLinked());
    // ---
    // assert a and b in same segment
    assertSame(liaMem.getSegmentMemory(), bMem.getSegmentMemory());
    // exists1 and b not in same segment
    assertNotSame(bMem.getSegmentMemory(), exists1Mem.getSegmentMemory());
    // exists1 and b are in same segment
    assertSame(exists1Mem.getSegmentMemory(), gMem.getSegmentMemory());
    // check segment masks
    assertEquals(2, rs.getSegmentMemories().length);
    assertEquals(3, rs.getAllLinkedMaskTest());
    assertEquals(1, rs.getLinkedSegmentMask());
    assertEquals(3, liaMem.getSegmentMemory().getAllLinkedMaskTest());
    assertEquals(1, liaMem.getNodePosMaskBit());
    assertEquals(2, bMem.getNodePosMaskBit());
    assertEquals(3, exists1Mem.getSegmentMemory().getAllLinkedMaskTest());
    assertEquals(1, exists1Mem.getNodePosMaskBit());
    assertEquals(2, gMem.getNodePosMaskBit());
    // assert c, d are in the same segment, and that this is the only segment in ria1 memory
    assertSame(dMem.getSegmentMemory(), cMem.getSegmentMemory());
    // assert d and exists are not in the same segment
    assertNotSame(exists2Mem.getSegmentMemory(), dMem.getSegmentMemory());
    assertEquals(3, riaMem1.getRiaPathMemory().getSegmentMemories().length);
    // only needs to know about segments in the subnetwork
    assertEquals(null, riaMem1.getRiaPathMemory().getSegmentMemories()[0]);
    assertEquals(dMem.getSegmentMemory(), riaMem1.getRiaPathMemory().getSegmentMemories()[1]);
    assertEquals(1, dMem.getSegmentMemory().getPathMemories().size());
    assertSame(riaMem1.getRiaPathMemory(), cMem.getSegmentMemory().getPathMemories().get(0));
    assertEquals(3, cMem.getSegmentMemory().getAllLinkedMaskTest());
    // E and F is not yet inserted, so bit is not set
    assertEquals(3, cMem.getSegmentMemory().getLinkedNodeMask());
    assertEquals(1, cMem.getNodePosMaskBit());
    assertEquals(2, dMem.getNodePosMaskBit());
    assertEquals(0, exists2Mem.getNodePosMaskBit());
    // insert to lazy initialize exists2Mem segment
    FactHandle fhE1 = wm.insert(new E());
    FactHandle fhF1 = wm.insert(new F());
    wm.flushPropagations();
    assertEquals(1, exists2Mem.getNodePosMaskBit());
    // only cares that the segment for c, E and exists1 are set, ignores the outer first segment
    assertEquals(6, riaMem1.getRiaPathMemory().getAllLinkedMaskTest());
    // E and F are inerted, so 6
    assertEquals(6, riaMem1.getRiaPathMemory().getLinkedSegmentMask());
    wm.delete(fhE1);
    wm.delete(fhF1);
    wm.flushPropagations();
    // E deleted
    assertEquals(2, riaMem1.getRiaPathMemory().getLinkedSegmentMask());
    // assert e, f are in the same segment, and that this is the only segment in ria2 memory
    // subnetworks are recursively created, so segment already exists
    assertNotNull(null, eMem.getSegmentMemory());
    assertSame(fMem.getSegmentMemory(), eMem.getSegmentMemory());
    assertEquals(3, riaMem2.getRiaPathMemory().getSegmentMemories().length);
    // only needs to know about segments in the subnetwork
    assertEquals(null, riaMem2.getRiaPathMemory().getSegmentMemories()[0]);
    // only needs to know about segments in the subnetwork
    assertEquals(null, riaMem2.getRiaPathMemory().getSegmentMemories()[1]);
    assertEquals(fMem.getSegmentMemory(), riaMem2.getRiaPathMemory().getSegmentMemories()[2]);
    assertSame(riaMem2.getRiaPathMemory(), eMem.getSegmentMemory().getPathMemories().get(0));
    assertEquals(3, eMem.getSegmentMemory().getAllLinkedMaskTest());
    assertEquals(0, eMem.getSegmentMemory().getLinkedNodeMask());
    // only cares that the segment for e and f set, ignores the outer two segment
    assertEquals(4, riaMem2.getRiaPathMemory().getAllLinkedMaskTest());
    // E and F is not yet inserted, so bit is not set
    assertEquals(0, riaMem2.getRiaPathMemory().getLinkedSegmentMask());
    fhE1 = wm.insert(new E());
    wm.insert(new F());
    wm.flushPropagations();
    // E and F are now inserted yet, so rule is linked
    assertTrue(rs.isRuleLinked());
    assertEquals(3, rs.getAllLinkedMaskTest());
    assertEquals(3, rs.getLinkedSegmentMask());
    // retest bits
    assertEquals(3, cMem.getSegmentMemory().getAllLinkedMaskTest());
    assertEquals(3, cMem.getSegmentMemory().getLinkedNodeMask());
    assertEquals(6, riaMem1.getRiaPathMemory().getAllLinkedMaskTest());
    assertEquals(6, riaMem1.getRiaPathMemory().getLinkedSegmentMask());
    assertEquals(3, eMem.getSegmentMemory().getAllLinkedMaskTest());
    assertEquals(3, eMem.getSegmentMemory().getLinkedNodeMask());
    assertEquals(4, riaMem2.getRiaPathMemory().getAllLinkedMaskTest());
    assertEquals(4, riaMem2.getRiaPathMemory().getLinkedSegmentMask());
    wm.delete(fhE1);
    wm.flushPropagations();
    // retest bits
    assertFalse(rs.isRuleLinked());
    assertEquals(3, cMem.getSegmentMemory().getLinkedNodeMask());
    assertEquals(2, riaMem1.getRiaPathMemory().getLinkedSegmentMask());
    assertEquals(2, eMem.getSegmentMemory().getLinkedNodeMask());
    assertEquals(0, riaMem2.getRiaPathMemory().getLinkedSegmentMask());
}
Also used : FactHandle(org.kie.api.runtime.rule.FactHandle) JoinNode(org.drools.core.reteoo.JoinNode) ObjectTypeNode(org.drools.core.reteoo.ObjectTypeNode) BetaMemory(org.drools.core.reteoo.BetaMemory) ExistsNode(org.drools.core.reteoo.ExistsNode) LiaNodeMemory(org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory) InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) KieBase(org.kie.api.KieBase) RightInputAdapterNode(org.drools.core.reteoo.RightInputAdapterNode) LeftInputAdapterNode(org.drools.core.reteoo.LeftInputAdapterNode) RuleTerminalNode(org.drools.core.reteoo.RuleTerminalNode) PathMemory(org.drools.core.reteoo.PathMemory) Test(org.junit.Test)

Example 53 with LiaNodeMemory

use of org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory in project drools by kiegroup.

the class LinkingTest method testNotNodeDoesNotUnlinksWithConstriants.

@Test
public void testNotNodeDoesNotUnlinksWithConstriants() {
    String str = "";
    str += "package org.kie \n";
    str += "import " + A.class.getCanonicalName() + "\n";
    str += "import " + B.class.getCanonicalName() + "\n";
    str += "import " + C.class.getCanonicalName() + "\n";
    str += "import " + X.class.getCanonicalName() + "\n";
    str += "import " + E.class.getCanonicalName() + "\n";
    str += "import " + F.class.getCanonicalName() + "\n";
    str += "import " + G.class.getCanonicalName() + "\n";
    str += "global java.util.List list \n";
    str += "rule rule1 when \n";
    str += "   $a : A() \n";
    str += "   not B( value == $a.value ) \n";
    str += "   $c : C() \n";
    str += "then \n";
    str += "  list.add( 'x' ); \n";
    str += "end \n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
    ObjectTypeNode aotn = getObjectTypeNode(kbase, A.class);
    InternalWorkingMemory wm = ((StatefulKnowledgeSessionImpl) kbase.newKieSession());
    List list = new ArrayList();
    wm.setGlobal("list", list);
    LeftInputAdapterNode aNode = (LeftInputAdapterNode) aotn.getObjectSinkPropagator().getSinks()[0];
    NotNode bNode = (NotNode) aNode.getSinkPropagator().getSinks()[0];
    JoinNode cNode = (JoinNode) bNode.getSinkPropagator().getSinks()[0];
    SegmentUtilities.createSegmentMemory(cNode, wm);
    LiaNodeMemory amem = (LiaNodeMemory) wm.getNodeMemory(aNode);
    // Only NotNode is linked in
    assertEquals(2, amem.getSegmentMemory().getLinkedNodeMask());
    FactHandle fha = wm.insert(new A());
    FactHandle fhb = wm.insert(new B(1));
    FactHandle fhc = wm.insert(new C());
    wm.flushPropagations();
    // All nodes are linked in
    assertEquals(7, amem.getSegmentMemory().getLinkedNodeMask());
    // NotNode does not unlink, due to variable constraint
    wm.retract(fhb);
    wm.flushPropagations();
    assertEquals(7, amem.getSegmentMemory().getLinkedNodeMask());
}
Also used : NotNode(org.drools.core.reteoo.NotNode) FactHandle(org.kie.api.runtime.rule.FactHandle) JoinNode(org.drools.core.reteoo.JoinNode) ObjectTypeNode(org.drools.core.reteoo.ObjectTypeNode) ArrayList(java.util.ArrayList) LiaNodeMemory(org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory) InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) List(java.util.List) LeftInputAdapterNode(org.drools.core.reteoo.LeftInputAdapterNode) Test(org.junit.Test)

Example 54 with LiaNodeMemory

use of org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory in project drools by kiegroup.

the class LinkingTest method testJoinNodes.

@Test
public void testJoinNodes() throws Exception {
    String str = "";
    str += "package org.kie \n";
    str += "import " + A.class.getCanonicalName() + "\n";
    str += "import " + B.class.getCanonicalName() + "\n";
    str += "import " + C.class.getCanonicalName() + "\n";
    str += "import " + X.class.getCanonicalName() + "\n";
    str += "import " + E.class.getCanonicalName() + "\n";
    str += "import " + F.class.getCanonicalName() + "\n";
    str += "import " + G.class.getCanonicalName() + "\n";
    str += "global java.util.List list \n";
    str += "rule rule1 when \n";
    str += "   $a : A() \n";
    str += "   $b : B() \n";
    str += "   $c : C() \n";
    str += "then \n";
    str += "  list.add( $a.getValue() + \":\"+ $b.getValue() + \":\" + $c.getValue() ); \n";
    str += "end \n";
    KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
    ObjectTypeNode aotn = getObjectTypeNode(kbase, A.class);
    ObjectTypeNode botn = getObjectTypeNode(kbase, B.class);
    ObjectTypeNode cotn = getObjectTypeNode(kbase, C.class);
    InternalWorkingMemory wm = (InternalWorkingMemory) kbase.newKieSession();
    List list = new ArrayList();
    wm.setGlobal("list", list);
    for (int i = 0; i < 3; i++) {
        wm.insert(new A(i));
    }
    for (int i = 0; i < 3; i++) {
        wm.insert(new B(i));
    }
    for (int i = 0; i < 29; i++) {
        wm.insert(new C(i));
    }
    wm.flushPropagations();
    LeftInputAdapterNode aNode = (LeftInputAdapterNode) aotn.getObjectSinkPropagator().getSinks()[0];
    JoinNode bNode = (JoinNode) aNode.getSinkPropagator().getSinks()[0];
    JoinNode cNode = (JoinNode) bNode.getSinkPropagator().getSinks()[0];
    LiaNodeMemory amem = (LiaNodeMemory) wm.getNodeMemory(aNode);
    BetaMemory bmem = (BetaMemory) wm.getNodeMemory(bNode);
    BetaMemory cmem = (BetaMemory) wm.getNodeMemory(cNode);
    // amem.getSegmentMemory().getStagedLeftTuples().insertSize() == 3
    assertNotNull(amem.getSegmentMemory().getStagedLeftTuples().getInsertFirst());
    assertNotNull(amem.getSegmentMemory().getStagedLeftTuples().getInsertFirst().getStagedNext());
    assertNotNull(amem.getSegmentMemory().getStagedLeftTuples().getInsertFirst().getStagedNext().getStagedNext());
    assertNull(amem.getSegmentMemory().getStagedLeftTuples().getInsertFirst().getStagedNext().getStagedNext().getStagedNext());
    // assertEquals( 3, bmem.getStagedRightTuples().insertSize() );
    assertNotNull(bmem.getStagedRightTuples().getInsertFirst());
    assertNotNull(bmem.getStagedRightTuples().getInsertFirst().getStagedNext());
    assertNotNull(bmem.getStagedRightTuples().getInsertFirst().getStagedNext().getStagedNext());
    assertNull(bmem.getStagedRightTuples().getInsertFirst().getStagedNext().getStagedNext().getStagedNext());
    wm.fireAllRules();
    assertNull(amem.getSegmentMemory().getStagedLeftTuples().getInsertFirst());
    assertNull(bmem.getStagedRightTuples().getInsertFirst());
    assertNull(cmem.getStagedRightTuples().getInsertFirst());
    assertEquals(261, list.size());
    assertTrue(list.contains("2:2:14"));
    assertTrue(list.contains("1:0:6"));
    assertTrue(list.contains("0:1:1"));
    assertTrue(list.contains("2:2:14"));
    assertTrue(list.contains("0:0:25"));
}
Also used : JoinNode(org.drools.core.reteoo.JoinNode) ObjectTypeNode(org.drools.core.reteoo.ObjectTypeNode) ArrayList(java.util.ArrayList) BetaMemory(org.drools.core.reteoo.BetaMemory) LiaNodeMemory(org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory) InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) KieBase(org.kie.api.KieBase) ArrayList(java.util.ArrayList) List(java.util.List) LeftInputAdapterNode(org.drools.core.reteoo.LeftInputAdapterNode) Test(org.junit.Test)

Example 55 with LiaNodeMemory

use of org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory in project drools by kiegroup.

the class SegmentCreationTest method tesShareInSubnetwork.

@Test
public void tesShareInSubnetwork() throws Exception {
    KieBase kbase = buildKnowledgeBase("  X() A() \n", "   X() A() B() C() \n", "   X() A()  not ( B() and C() ) \n");
    InternalWorkingMemory wm = ((InternalWorkingMemory) kbase.newKieSession());
    ObjectTypeNode aotn = getObjectTypeNode(kbase, LinkingTest.A.class);
    ObjectTypeNode dotn = getObjectTypeNode(kbase, LinkingTest.X.class);
    LeftInputAdapterNode lian = (LeftInputAdapterNode) dotn.getObjectSinkPropagator().getSinks()[0];
    JoinNode beta = (JoinNode) aotn.getObjectSinkPropagator().getSinks()[0];
    RuleTerminalNode rtn1 = (RuleTerminalNode) beta.getSinkPropagator().getSinks()[0];
    JoinNode bNode = (JoinNode) beta.getSinkPropagator().getSinks()[1];
    JoinNode cNode = (JoinNode) bNode.getSinkPropagator().getSinks()[0];
    RuleTerminalNode rtn2 = (RuleTerminalNode) cNode.getSinkPropagator().getSinks()[0];
    RightInputAdapterNode riaNode = (RightInputAdapterNode) cNode.getSinkPropagator().getSinks()[1];
    NotNode notNode = (NotNode) beta.getSinkPropagator().getSinks()[2];
    RuleTerminalNode rtn3 = (RuleTerminalNode) notNode.getSinkPropagator().getSinks()[0];
    wm.insert(new LinkingTest.X());
    wm.insert(new LinkingTest.A());
    wm.insert(new LinkingTest.B());
    wm.insert(new LinkingTest.C());
    wm.flushPropagations();
    // LiaNode  is in it's own segment
    LiaNodeMemory liaMem = (LiaNodeMemory) wm.getNodeMemory(lian);
    SegmentMemory smem = liaMem.getSegmentMemory();
    assertEquals(lian, smem.getRootNode());
    assertEquals(beta, smem.getTipNode());
    // segment is not initialized yet
    assertNull(smem.getFirst());
    wm.fireAllRules();
    SegmentMemory rtnSmem1 = smem.getFirst();
    assertEquals(rtn1, rtnSmem1.getRootNode());
    assertEquals(rtn1, rtnSmem1.getTipNode());
    SegmentMemory bSmem = rtnSmem1.getNext();
    assertEquals(bNode, bSmem.getRootNode());
    assertEquals(cNode, bSmem.getTipNode());
    SegmentMemory rtn2Smem = bSmem.getFirst();
    assertEquals(rtn2, rtn2Smem.getRootNode());
    assertEquals(rtn2, rtn2Smem.getTipNode());
    SegmentMemory riaSmem = rtn2Smem.getNext();
    assertEquals(riaNode, riaSmem.getRootNode());
    assertEquals(riaNode, riaSmem.getTipNode());
    SegmentMemory notSmem = bSmem.getNext();
    assertEquals(notNode, notSmem.getRootNode());
    assertEquals(rtn3, notSmem.getTipNode());
}
Also used : NotNode(org.drools.core.reteoo.NotNode) SegmentMemory(org.drools.core.reteoo.SegmentMemory) JoinNode(org.drools.core.reteoo.JoinNode) ObjectTypeNode(org.drools.core.reteoo.ObjectTypeNode) LiaNodeMemory(org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory) InternalWorkingMemory(org.drools.core.common.InternalWorkingMemory) KieBase(org.kie.api.KieBase) RightInputAdapterNode(org.drools.core.reteoo.RightInputAdapterNode) LeftInputAdapterNode(org.drools.core.reteoo.LeftInputAdapterNode) RuleTerminalNode(org.drools.core.reteoo.RuleTerminalNode) Test(org.junit.Test)

Aggregations

LiaNodeMemory (org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory)56 LeftInputAdapterNode (org.drools.core.reteoo.LeftInputAdapterNode)50 Test (org.junit.Test)46 InternalWorkingMemory (org.drools.core.common.InternalWorkingMemory)42 ObjectTypeNode (org.drools.core.reteoo.ObjectTypeNode)42 SegmentMemory (org.drools.core.reteoo.SegmentMemory)36 JoinNode (org.drools.core.reteoo.JoinNode)29 ArrayList (java.util.ArrayList)22 BetaMemory (org.drools.core.reteoo.BetaMemory)22 List (java.util.List)21 KieBase (org.kie.api.KieBase)21 RuleTerminalNode (org.drools.core.reteoo.RuleTerminalNode)20 Match (org.kie.api.runtime.rule.Match)16 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)15 FactHandle (org.kie.api.runtime.rule.FactHandle)10 NotNode (org.drools.core.reteoo.NotNode)9 InternalFactHandle (org.drools.core.common.InternalFactHandle)8 InternalKnowledgeBase (org.drools.kiesession.rulebase.InternalKnowledgeBase)8 Arrays.asList (java.util.Arrays.asList)7 RightInputAdapterNode (org.drools.core.reteoo.RightInputAdapterNode)7