Package org.drools.core.reteoo.LeftInputAdapterNode

Examples of org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory


        wm.insert( new LinkingTest.A() );
        wm.insert( new LinkingTest.B() );
        wm.insert( new LinkingTest.C() );
       
        // LiaNode  is in it's own segment
        LiaNodeMemory liaMem = ( LiaNodeMemory ) wm.getNodeMemory( liaNode );
        SegmentMemory smem = liaMem.getSegmentMemory();
        assertEquals( liaNode, smem.getRootNode() );
        assertEquals( liaNode, smem.getTipNode() );
       
        SegmentMemory rtnSmem1 = smem.getFirst();
        assertEquals( rtn1, rtnSmem1.getRootNode() );
View Full Code Here


        JoinNode bNode = ( JoinNode ) cen1Node.getSinkPropagator().getSinks()[0];

        RuleTerminalNode rtn1 = ( RuleTerminalNode ) bNode.getSinkPropagator().getSinks()[0];

        FactHandle bFh = wm.insert( new LinkingTest.B() );
        LiaNodeMemory liaMem = ( LiaNodeMemory ) wm.getNodeMemory( liaNode );
        SegmentMemory smem = liaMem.getSegmentMemory();
        assertEquals( 1, smem.getAllLinkedMaskTest() );
        assertEquals( 4, smem.getLinkedNodeMask() ); // B links, but it will not trigger mask
        assertFalse( smem.isSegmentLinked() );

        PathMemory pmem = ( PathMemory ) wm.getNodeMemory(rtn1);
View Full Code Here

        wm.insert( new C() );
        wm.insert( new D() );

        BetaMemory bm = null;

        LiaNodeMemory liam = ( LiaNodeMemory ) wm.getNodeMemory( liaNodeA );

        BetaMemory bm1 = ( BetaMemory ) wm.getNodeMemory( joinNodeB );
        BetaMemory bm2 = ( BetaMemory ) wm.getNodeMemory( joinNodeC );
        BetaMemory bm3 = ( BetaMemory ) wm.getNodeMemory( joinNodeD1 );
        assertEquals(1, liam.getNodePosMaskBit() );
        assertEquals(1, bm1.getNodePosMaskBit() );
        assertEquals(2, bm2.getNodePosMaskBit() );
        assertEquals(1, bm3.getNodePosMaskBit() );

        assertNotSame( liam.getSegmentMemory(), bm1.getSegmentMemory() );
        assertSame( bm1.getSegmentMemory(), bm2.getSegmentMemory() );
        assertNotSame( bm2.getSegmentMemory(), bm3.getSegmentMemory() );

        BetaMemory bm4 = ( BetaMemory ) wm.getNodeMemory( existsNode2 );
        BetaMemory bm5 = ( BetaMemory ) wm.getNodeMemory( joinNodeD2 );
View Full Code Here

        wm.insertnew B() );
        wm.insertnew C() );
        wm.insertnew D() );
        wm.insertnew G() );

        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 );

        assertFalse( rs.isRuleLinked() ); //E and F are not inserted yet, so rule is unlinked

        //---
        // assert a and b in same segment
        assertSame( liaMem.getSegmentMemory(), bMem.getSegmentMemory() );

        // exists1 and b not in same segment
        assertNotSamebMem.getSegmentMemory(), exists1Mem.getSegmentMemory() );

        // exists1 and b are in same segment
        assertSameexists1Mem.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() );
View Full Code Here

       
        LeftInputAdapterNode aNode = (LeftInputAdapterNode) aotn.getSinkPropagator().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 );
       
        assertEquals( 3, amem.getSegmentMemory().getStagedLeftTuples().insertSize() );
        assertEquals( 3, bmem.getStagedRightTuples().insertSize() );
        assertEquals( 29, cmem.getStagedRightTuples().insertSize()  );
       
        wm.fireAllRules();
       
        assertEquals( 0, amem.getSegmentMemory().getStagedLeftTuples().insertSize()  );
        assertEquals( 0, bmem.getStagedRightTuples().insertSize() );
        assertEquals( 0, cmem.getStagedRightTuples().insertSize()  );       
       
        assertEquals( 261, list.size() );
       
View Full Code Here

        LeftInputAdapterNode aNode = (LeftInputAdapterNode) aotn.getSinkPropagator().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.insertnew A() );
        FactHandle fhb = wm.insertnew B() );
        FactHandle fhc = wm.insertnew C() );       
        wm.fireAllRules();
        assertEquals( 0, list.size() );
       
        // NotNode unlinks, which is allowed because it has no variable constraints
        assertEquals( 5, amem.getSegmentMemory().getLinkedNodeMask() );       
       
        // NotNode links back in again, which is allowed because it has no variable constraints
        wm.retract( fhb );
        assertEquals( 7, amem.getSegmentMemory().getLinkedNodeMask() );
        wm.fireAllRules();
        assertEquals( 1, list.size() );
       
        // Now try with lots of facthandles on NotNode
       
        list.clear();
        List<FactHandle> handles = new ArrayList<FactHandle>();
        for ( int i = 0; i < 5; i++ ) {
            handles.addwm.insertnew B() ) );
        }
        wm.fireAllRules();
        assertEquals( 0, list.size() );
       
        assertEquals( 5, amem.getSegmentMemory().getLinkedNodeMask() );
        for ( FactHandle fh : handles ) {
            wm.retract( fh );
        }
        assertEquals( 7, amem.getSegmentMemory().getLinkedNodeMask() );
        wm.fireAllRules();
        assertEquals( 1, list.size() );       
    }
View Full Code Here

        LeftInputAdapterNode aNode = (LeftInputAdapterNode) aotn.getSinkPropagator().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.insertnew A() );
        FactHandle fhb = wm.insertnew B(1) );
        FactHandle fhc = wm.insertnew C() );
       
        // All nodes are linked in
        assertEquals( 7, amem.getSegmentMemory().getLinkedNodeMask() );
       
        // NotNode does not unlink, due to variable constraint
        wm.retract( fhb );
        assertEquals( 7, amem.getSegmentMemory().getLinkedNodeMask() );       
    }   
View Full Code Here

        wm.setGlobal("list", list);

        ObjectTypeNode aotn = getObjectTypeNode(kbase, A.class );
        LeftInputAdapterNode liaNode = (LeftInputAdapterNode) aotn.getSinkPropagator().getSinks()[0];

        LiaNodeMemory lm = ( LiaNodeMemory ) wm.getNodeMemory(liaNode);
        SegmentMemory sm = lm.getSegmentMemory();
        assertEquals(1, sm.getStagedLeftTuples().insertSize());

        wm.fireAllRules();

        BetaMemory bMem = ( BetaMemory ) sm.getNodeMemories().get(1);
View Full Code Here

        wm.setGlobal("list", list);

        ObjectTypeNode aotn = getObjectTypeNode(kbase, A.class );
        LeftInputAdapterNode liaNode = (LeftInputAdapterNode) aotn.getSinkPropagator().getSinks()[0];

        LiaNodeMemory lm = ( LiaNodeMemory ) wm.getNodeMemory(liaNode);
        SegmentMemory sm = lm.getSegmentMemory();
        SegmentMemory subSm = sm.getFirst();
        SegmentMemory mainSm = subSm.getNext();

        wm.fireAllRules();
        assertEquals(2, list.size() );
View Full Code Here

        JoinNode bNode = (JoinNode) liaNode.getSinkPropagator().getFirstLeftTupleSink();

        JoinNode c1Node = (JoinNode) bNode.getSinkPropagator().getFirstLeftTupleSink();
        JoinNode c2Node = (JoinNode) bNode.getSinkPropagator().getLastLeftTupleSink();

        LiaNodeMemory lm = ( LiaNodeMemory ) wm.getNodeMemory(liaNode);
        SegmentMemory sm = lm.getSegmentMemory();

        BetaMemory c1Mem = ( BetaMemory ) wm.getNodeMemory(c1Node);
        assertSame( sm.getFirst(), c1Mem.getSegmentMemory());
        assertEquals( 3, c1Mem.getLeftTupleMemory().size() );
        assertEquals( 1, c1Mem.getRightTupleMemory().size() );
View Full Code Here

TOP

Related Classes of org.drools.core.reteoo.LeftInputAdapterNode.LiaNodeMemory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.