Package org.drools.core.reteoo

Examples of org.drools.core.reteoo.AlphaNode


        ObjectTypeNode otn = getObjectTypeNode(kbase, "A" );
        assertNotNull( otn );

        List<String> sp = getSettableProperties(wm, otn);       

        AlphaNode alphaNode1 = ( AlphaNode ) otn.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("a"), sp), alphaNode1.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "i", "b", "s","j"), sp), alphaNode1.getInferredMask() );
               
        // first share
        AlphaNode alphaNode1_1 = ( AlphaNode ) alphaNode1.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("i"), sp), alphaNode1_1.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "i", "b", "s", "j"), sp), alphaNode1_1.getInferredMask() )
       
        BetaNode betaNode1 = ( BetaNode alphaNode1_1.getSinkPropagator().getSinks()[1];       
        assertEqualscalculatePositiveMask(list("s"), sp), betaNode1.getRightDeclaredMask() );
        assertEqualscalculatePositiveMask(list("a", "i", "s"), sp), betaNode1.getRightInferredMask() );
       
        assertEqualscalculatePositiveMask(list("j"), sp), betaNode1.getLeftDeclaredMask() );
        assertEqualscalculatePositiveMask(list("b", "j"), sp), betaNode1.getLeftInferredMask() );       

        // second split, third alpha
        AlphaNode alphaNode1_2 = ( AlphaNode ) alphaNode1_1.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("b"), sp), alphaNode1_2.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b", "i", "j"), sp), alphaNode1_2.getInferredMask() );

        BetaNode betaNode3 = ( BetaNode alphaNode1_2.getSinkPropagator().getSinks()[0];       
        assertEqualscalculatePositiveMask(list("j"), sp), betaNode3.getRightDeclaredMask() );
        assertEqualscalculatePositiveMask(list("a", "i", "b", "j"), sp), betaNode3.getRightInferredMask() );
       
        assertEqualscalculatePositiveMask(list("k"), sp), betaNode3.getLeftDeclaredMask() );
        assertEqualscalculatePositiveMask(list("c", "k"), sp), betaNode3.getLeftInferredMask() );       


        ObjectTypeNode otn = getObjectTypeNode(kbase, "A" );
        assertNotNull( otn );

        List<String> sp = getSettableProperties(wm, otn);       

        AlphaNode alphaNode1 = ( AlphaNode ) otn.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("a"), sp), alphaNode1.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b", "c", "i", "j"), sp), alphaNode1.getInferredMask() );
               
        // first split
        AlphaNode alphaNode1_1 = ( AlphaNode ) alphaNode1.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("b"), sp), alphaNode1_1.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b", "c"), sp), alphaNode1_1.getInferredMask() )
       
        BetaNode betaNode1 = ( BetaNode alphaNode1_1.getSinkPropagator().getSinks()[0];       
        assertEqualscalculatePositiveMask(list("c"), sp), betaNode1.getRightDeclaredMask() );
        assertEqualscalculatePositiveMask(list("a", "b", "c"), sp), betaNode1.getRightInferredMask() );
       
        assertEqualscalculatePositiveMask(list("i"), sp), betaNode1.getLeftDeclaredMask() );
        assertEqualscalculatePositiveMask(list("b", "i"), sp), betaNode1.getLeftInferredMask() );       
       
        // fist share, second alpha
        AlphaNode alphaNode1_2 = ( AlphaNode ) alphaNode1.getSinkPropagator().getSinks()[1];
        assertEquals( calculatePositiveMask(list("i"), sp), alphaNode1_2.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "i", "b", "j"), sp), alphaNode1_2.getInferredMask() )
       
        AlphaNode alphaNode1_3 = ( AlphaNode ) alphaNode1_2.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("b"), sp), alphaNode1_3.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "i", "b", "j"), sp), alphaNode1_3.getInferredMask() );        
       

        BetaNode betaNode2 = ( BetaNode alphaNode1_3.getSinkPropagator().getSinks()[0];       
        assertEqualscalculatePositiveMask(list("j"), sp), betaNode2.getRightDeclaredMask() );
        assertEqualscalculatePositiveMask(list("a", "i", "b", "j"), sp), betaNode2.getRightInferredMask() );
       
        assertEqualscalculatePositiveMask(list("k"), sp), betaNode2.getLeftDeclaredMask() );
        assertEqualscalculatePositiveMask(list("c", "k"), sp), betaNode2.getLeftInferredMask() );        

        ObjectTypeNode otn = getObjectTypeNode(kbase, "A" );
        assertNotNull( otn );

        List<String> sp = getSettableProperties(wm, otn);       

        AlphaNode alphaNode1 = ( AlphaNode ) otn.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("a"), sp), alphaNode1.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b", "c", "i", "s"), sp), alphaNode1.getInferredMask() );
               
        // first share
        AlphaNode alphaNode1_1 = ( AlphaNode ) alphaNode1.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("b"), sp), alphaNode1_1.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b", "c"), sp), alphaNode1_1.getInferredMask() )
       
        // first split
        BetaNode betaNode1 = ( BetaNode alphaNode1_1.getSinkPropagator().getSinks()[0];       
        assertEqualscalculatePositiveMask(list("c"), sp), betaNode1.getRightDeclaredMask() );
        assertEqualscalculatePositiveMask(list("a", "b", "c"), sp), betaNode1.getRightInferredMask() );
       
        assertEqualscalculatePositiveMask(list("i"), sp), betaNode1.getLeftDeclaredMask() );
        assertEqualscalculatePositiveMask(list("b", "i"), sp), betaNode1.getLeftInferredMask() );       
       
        // second split
        AlphaNode alphaNode1_2 = ( AlphaNode ) alphaNode1.getSinkPropagator().getSinks()[1];
        assertEquals( calculatePositiveMask(list("i"), sp), alphaNode1_2.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "i", "s"), sp), alphaNode1_2.getInferredMask() );          
       

        BetaNode betaNode2 = ( BetaNode alphaNode1_2.getSinkPropagator().getSinks()[0];       
        assertEqualscalculatePositiveMask(list("s"), sp), betaNode2.getRightDeclaredMask() );
        assertEqualscalculatePositiveMask(list("a", "i", "s"), sp), betaNode2.getRightInferredMask() );
       
        assertEqualscalculatePositiveMask(list("j"), sp), betaNode2.getLeftDeclaredMask() );
        assertEqualscalculatePositiveMask(list("b", "j"), sp), betaNode2.getLeftInferredMask() );           

        ReteooWorkingMemoryInterface wm = ((StatefulKnowledgeSessionImpl)kbase.newStatefulKnowledgeSession()).session;

        ObjectTypeNode otnB = getObjectTypeNode(kbase, "B" );
        List<String> sp = getSettableProperties(wm, otnB);

        AlphaNode alphaNode = ( AlphaNode ) otnB.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("a"), sp), alphaNode.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b", "c"), sp), alphaNode.getInferredMask());

        ObjectTypeNode otnC = getObjectTypeNode(kbase, "C" );
        BetaNode betaNodeC1 = ( BetaNode ) otnC.getSinkPropagator().getSinks()[0];
        BetaNode betaNodeC2 = ( BetaNode ) otnC.getSinkPropagator().getSinks()[1];

        LeftInputAdapterNode lia = (LeftInputAdapterNode)alphaNode.getSinkPropagator().getSinks()[0];
        assertSame(betaNodeC1, lia.getSinkPropagator().getSinks()[0]);
        assertSame(betaNodeC2, lia.getSinkPropagator().getSinks()[1]);

        assertEquals( 0L, betaNodeC1.getRightDeclaredMask() );
        assertEquals( 0L, betaNodeC1.getRightInferredMask() );
        assertEquals( calculatePositiveMask(list("b"), sp), betaNodeC1.getLeftDeclaredMask() );
        assertEquals( calculatePositiveMask(list("a", "b"), sp), betaNodeC1.getLeftInferredMask() );

        assertEquals( 0L, betaNodeC2.getRightDeclaredMask() );
        assertEquals( 0L, betaNodeC2.getRightInferredMask() );
        assertEquals( calculatePositiveMask(list("c"), sp), betaNodeC2.getLeftDeclaredMask() );
        assertEquals( calculatePositiveMask(list("a", "c"), sp), betaNodeC2.getLeftInferredMask() );

        kbase.removeRule( "org.drools.compiler.integrationtests", "r0" );
        assertEquals( calculatePositiveMask(list("a"), sp), alphaNode.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "c"), sp), alphaNode.getInferredMask());

        assertEquals( 1, lia.getSinkPropagator().getSinks().length );
        BetaNode betaNodeC = ( BetaNode ) lia.getSinkPropagator().getSinks()[0];

        assertEquals( 0L, betaNodeC2.getRightDeclaredMask() );

        ReteooWorkingMemoryInterface wm = ((StatefulKnowledgeSessionImpl)kbase.newStatefulKnowledgeSession()).session;

        ObjectTypeNode otnB = getObjectTypeNode(kbase, "B" );
        List<String> sp = getSettableProperties(wm, otnB);

        AlphaNode alphaNode = ( AlphaNode ) otnB.getSinkPropagator().getSinks()[0];
        assertEquals( calculatePositiveMask(list("a"), sp), alphaNode.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b", "c"), sp), alphaNode.getInferredMask());

        ObjectTypeNode otnA = getObjectTypeNode(kbase, "A" );
        BetaNode betaNodeA1 = ( BetaNode ) otnA.getSinkPropagator().getSinks()[0];
        BetaNode betaNodeA2 = ( BetaNode ) otnA.getSinkPropagator().getSinks()[1];

        assertEquals( calculatePositiveMask(list("i"), sp), betaNodeA1.getRightDeclaredMask() );
        assertEquals( calculatePositiveMask(list("i"), sp), betaNodeA1.getRightInferredMask() );
        assertEquals( calculatePositiveMask(list("b"), sp), betaNodeA1.getLeftDeclaredMask() );
        assertEquals( calculatePositiveMask(list("a", "b"), sp), betaNodeA1.getLeftInferredMask() );

        assertEquals( calculatePositiveMask(list("j"), sp), betaNodeA2.getRightDeclaredMask() );
        assertEquals( calculatePositiveMask(list("j"), sp), betaNodeA2.getRightInferredMask() );
        assertEquals( calculatePositiveMask(list("c"), sp), betaNodeA2.getLeftDeclaredMask() );
        assertEquals( calculatePositiveMask(list("a", "c"), sp), betaNodeA2.getLeftInferredMask() );

        ObjectTypeNode otnC = getObjectTypeNode(kbase, "C" );
        BetaNode betaNodeC = ( BetaNode ) otnC.getSinkPropagator().getSinks()[0];

        assertEquals( 0L, betaNodeC.getRightDeclaredMask() );
        assertEquals( 0L, betaNodeC.getRightInferredMask() );
        assertEquals( -1L, betaNodeC.getLeftDeclaredMask() );
        assertEquals( -1L, betaNodeC.getLeftInferredMask() );

        ObjectTypeNode otnD = getObjectTypeNode(kbase, "D" );
        BetaNode betaNodeD = ( BetaNode ) otnC.getSinkPropagator().getSinks()[0];

        assertEquals( 0L, betaNodeD.getRightDeclaredMask() );
        assertEquals( 0L, betaNodeD.getRightInferredMask() );
        assertEquals( -1L, betaNodeD.getLeftDeclaredMask() );
        assertEquals( -1L, betaNodeD.getLeftInferredMask() );

        kbase.removeRule( "org.drools.compiler.integrationtests", "r1" );
        assertEquals( calculatePositiveMask(list("a"), sp), alphaNode.getDeclaredMask( ) );
        assertEquals( calculatePositiveMask(list("a", "b"), sp), alphaNode.getInferredMask());
    }

        ReteooWorkingMemoryInterface wm = ((StatefulKnowledgeSessionImpl)kbase.newStatefulKnowledgeSession()).session;
       
        ObjectTypeNode otn = getObjectTypeNode(kbase, "Person" );
        assertNotNull( otn );

        AlphaNode alphaNode = ( AlphaNode ) otn.getSinkPropagator().getSinks()[0];
        assertEquals( -1L, alphaNode.getDeclaredMask() );
        assertEquals( -1L, alphaNode.getInferredMask() );
       
       
        LeftInputAdapterNode liaNode = ( LeftInputAdapterNode ) alphaNode.getSinkPropagator().getSinks()[0];
       
        RuleTerminalNode rtNode = ( RuleTerminalNode ) liaNode.getSinkPropagator().getSinks()[0];
        assertEquals( -1L, rtNode.getDeclaredMask() );
        assertEquals( -1L, rtNode.getInferredMask() );
   

        ReteooWorkingMemoryInterface wm = ((StatefulKnowledgeSessionImpl)kbase.newStatefulKnowledgeSession()).session;
       
        ObjectTypeNode otn = getObjectTypeNode(kbase, "Cheese" );
        assertNotNull( otn );

        AlphaNode alphaNode = ( AlphaNode ) otn.getSinkPropagator().getSinks()[0];
        assertEquals( -1L, alphaNode.getDeclaredMask() );
        assertEquals( -1L, alphaNode.getInferredMask() );
       
        BetaNode betaNode = ( BetaNode ) alphaNode.getSinkPropagator().getSinks()[0];
       
        assertEquals( -1L, betaNode.getRightDeclaredMask() );
        assertEquals( -1L, betaNode.getRightInferredMask() );
   

        ReteooWorkingMemoryInterface wm = ((StatefulKnowledgeSessionImpl)kbase.newStatefulKnowledgeSession()).session;
       
        ObjectTypeNode otn = getObjectTypeNode(kbase, "Cheese" );
        assertNotNull( otn );

        AlphaNode alphaNode1 = ( AlphaNode ) otn.getSinkPropagator().getSinks()[0];
        assertEquals( -1L, alphaNode1.getDeclaredMask() );
        assertEquals( -1L, alphaNode1.getInferredMask() );
       
       
        // first share
        AlphaNode alphaNode1_1 = ( AlphaNode ) alphaNode1.getSinkPropagator().getSinks()[0];
        assertEquals( -1L, alphaNode1_1.getDeclaredMask() );
        assertEquals( -1L, alphaNode1_1.getInferredMask() );
       
        BetaNode betaNode1 = ( BetaNode ) alphaNode1_1.getSinkPropagator().getSinks()[0];
       
        assertEquals( -1L, betaNode1.getRightDeclaredMask() );
        assertEquals( -1L, betaNode1.getRightInferredMask() );
       
       
        // second share
        AlphaNode alphaNode1_2 = ( AlphaNode ) alphaNode1.getSinkPropagator().getSinks()[1];
        assertEquals( -1L, alphaNode1_2.getDeclaredMask() );
        assertEquals( -1L, alphaNode1_2.getInferredMask() );
       
        BetaNode betaNode2 = ( BetaNode ) alphaNode1_2.getSinkPropagator().getSinks()[0];
       
        assertEquals( -1L, betaNode2.getRightDeclaredMask() );
        assertEquals( -1L, betaNode2.getRightInferredMask() );
    }      

        public Boolean call() throws Exception {
            EntryPoint ep = ksession.getEntryPoint("EP" + index);

            InternalWorkingMemory wm = ((NamedEntryPoint)ep).getInternalWorkingMemory();
            ObjectTypeNode otn = ((NamedEntryPoint)ep).getEntryPointNode().getObjectTypeNodes().values().iterator().next();
            AlphaNode alpha = (AlphaNode)otn.getSinkPropagator().getSinks()[0];
            BetaNode beta = (BetaNode)alpha.getSinkPropagator().getSinks()[0];
            BetaMemory memory = (BetaMemory) wm.getNodeMemory(beta);
            memory.getSegmentMemory();

            for (int i = 0; i < 100; i++) {
                Thread.sleep(RANDOM.nextInt(100));

        private void initPathMemories() {
            pathMemories = new PathMemory[3];
            NamedEntryPoint ep = (NamedEntryPoint)epManipulators[8].getEntryPoiny();
            InternalWorkingMemory wm = ((NamedEntryPoint)ep).getInternalWorkingMemory();
            ObjectTypeNode otn = ((NamedEntryPoint)ep).getEntryPointNode().getObjectTypeNodes().values().iterator().next();
            AlphaNode alpha = (AlphaNode)otn.getSinkPropagator().getSinks()[0];
            ObjectSink[] sinks = alpha.getSinkPropagator().getSinks();
            for (int i = 0; i < sinks.length; i++) {
                BetaNode beta = (BetaNode)sinks[i];
                RuleTerminalNode rtn = (RuleTerminalNode)beta.getSinkPropagator().getSinks()[0];
                pathMemories[i] ( PathMemory ) wm.getNodeMemory(rtn);
            }

TOP

Related Classes of org.drools.core.reteoo.AlphaNode

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.