Package org.drools.rule

Examples of org.drools.rule.Rule


        Declaration dec = new Declaration( "somthing",
                                           objType,
                                           1 );
        TupleKey key = new TupleKey( dec,
                                     new FactHandleImpl( 1 ) );
        Rule rule = new Rule( "name1" );
        map.put( rule,
                 key,
                 "item1" );

        Object result = map.remove( rule,
View Full Code Here


                                           objType,
                                           1 );
        TupleKey key = new TupleKey( dec,
                                     new FactHandleImpl( 1 ) );

        map.put( new Rule( "name1" ),
                 key,
                 "item1" );
        map.put( new Rule( "name2" ),
                 key,
                 "item2" );

        TupleKey key2 = new TupleKey( dec,
                                      new FactHandleImpl( 2 ) );
        map.put( new Rule( "name2" ),
                 key2,
                 "item3" );

        Object result = map.remove( new Rule( "name2" ),
                                    key );

        assertNotSame( "item1",
                       result );

        result = map.remove( new Rule( "name2" ),
                             key2 );

        assertEquals( "item3",
                      result );

        // now check null returns
        result = map.remove( new Rule( "missing rule" ),
                             key2 );
        assertNull( result );

        TupleKey missingKey = new TupleKey( dec,
                                            new FactHandleImpl( 42 ) );
        result = map.remove( new Rule( "name2" ),
                             missingKey );
        assertNull( result );
    }
View Full Code Here

        Declaration dec = new Declaration( "somthing",
                                           objType,
                                           1 );
        TupleKey key = new TupleKey( dec,
                                     new FactHandleImpl( 1 ) );
        map.put( new Rule( "name1" ),
                 key,
                 "item1" );
        map.put( new Rule( "name2" ),
                 key,
                 "item1" );
        map.put( new Rule( "name3" ),
                 key,
                 "item1" );
        map.removeAll( getRemoveDelegate( ) );

        assertNull( map.remove( new Rule( "name1" ),
                                key ) );
        assertNull( map.remove( new Rule( "name2" ),
                                key ) );
        assertNull( map.remove( new Rule( "name3" ),
                                key ) );
    }
View Full Code Here

        Declaration dec = new Declaration( "somthing",
                                           objType,
                                           1 );
        TupleKey key = new TupleKey( dec,
                                     new FactHandleImpl( 1 ) );
        map.put( new Rule( "name1" ),
                 key,
                 "item1" );
        assertFalse( map.isEmpty( ) );
        AgendaItemMap.RemoveDelegate del = getRemoveDelegate( );
        map.removeAll( del );
        assertTrue( map.isEmpty( ) );

        map.put( new Rule( "name1" ),
                 key,
                 "item1" );
        map.remove( new Rule( "name1" ),
                    key );
        assertTrue( map.isEmpty( ) );

    }
View Full Code Here

public class RuleIntegrationExceptionTest extends TestCase
{
    public void testConstruct()
    {
        Rule rule = new Rule( "cheese" );

        RuleIntegrationException e = new RuleIntegrationException( rule );

        assertSame( rule, e.getRule( ) );
View Full Code Here

{
    public void testConstruct() throws Exception
    {
        FactHandleImpl handle = new FactHandleImpl( 1 );

        Rule rule = new Rule( "test-rule" );
        Declaration decl = rule.addParameterDeclaration( "paramVar", new MockObjectType( true ) );

        //add consequence
        rule.setConsequence( new org.drools.spi.InstrumentedConsequence( ) );
        //add condition
        rule.addCondition( new org.drools.spi.InstrumentedCondition( ) );

        ReteTuple tuple = new ReteTuple( null, decl, handle );

        AgendaItem item = new AgendaItem( tuple, rule );
View Full Code Here

    }

    public void testSetTuple() throws Exception
    {
        FactHandleImpl handle = new FactHandleImpl( 1 );
        Rule rule = new Rule( "test-rule" );
        Declaration decl = rule.addParameterDeclaration( "paramVar", new MockObjectType( true ) );

        //add consequence
        rule.setConsequence( new org.drools.spi.InstrumentedConsequence( ) );
        //add condition
        rule.addCondition( new org.drools.spi.InstrumentedCondition( ) );

        ReteTuple tuple = new ReteTuple( null, decl, handle );

        AgendaItem item = new AgendaItem( tuple, rule );
View Full Code Here

        RuleBase ruleBase = new RuleBaseImpl( new Rete( ) );

        FactHandleImpl handle = new FactHandleImpl( 1 );

        Rule rule = new Rule( "test-rule" );

        Declaration decl = rule.addParameterDeclaration( "cheese", new MockObjectType( true ) );

        ReteTuple tuple = new ReteTuple( (WorkingMemoryImpl) ruleBase.newWorkingMemory( ), decl, handle );

        InstrumentedConsequence consequence = new InstrumentedConsequence( );

        rule.setConsequence( consequence );

        AgendaItem item = new AgendaItem( tuple, rule );

        item.fire( ( WorkingMemoryImpl ) tuple.getWorkingMemory( ) );
View Full Code Here

        RuleBase ruleBase = new RuleBaseImpl( new Rete( ) );

        WorkingMemoryImpl workingMemory = (WorkingMemoryImpl) ruleBase.newWorkingMemory( );
        final Agenda agenda = workingMemory.getAgenda( );

        final Rule rule = new Rule( "test-rule" );

        // add consequence
        rule.setConsequence( new org.drools.spi.Consequence( )
        {
            public void invoke(org.drools.spi.Tuple tuple)
            {            
                agenda.addToAgenda( (ReteTuple) tuple,
                                    rule );
            }
        } );

        ReteTuple tuple = new ReteTuple( workingMemory );

        assertEquals( 0,
                      agenda.size( ) );

        /*
         * This is not recursive so a rule should not be able to activate itself
         */
        rule.setNoLoop( true );
        agenda.addToAgenda( tuple,
                            rule );
        assertEquals( 1,
                      agenda.size( ) );
        agenda.fireNextItem( null );
        assertEquals( 0,
                      agenda.size( ) );

        /*
         * This is recursive so a rule should be able to activate itself
         */
        rule.setNoLoop( false );
        agenda.addToAgenda( tuple,
                            rule );
        assertEquals( 1,
                      agenda.size( ) );
        agenda.fireNextItem( null );
View Full Code Here

        RuleBase ruleBase = new RuleBaseImpl( new Rete( ) );

        final WorkingMemoryImpl workingMemory = (WorkingMemoryImpl) ruleBase.newWorkingMemory( );
        final Agenda agenda = workingMemory.getAgenda( );

        final Rule rule = new Rule( "test-rule" );

        // add consequence
        rule.setConsequence( new org.drools.spi.Consequence( )
        {
            public void invoke(org.drools.spi.Tuple tuple)
            {       
                //throw in a different tuple, to check the agenda doesn't stop the rule/tuple combo
                Declaration dec = new Declaration("paramVar", new MockObjectType(true), 1);
                FactHandle fact = new FactHandleImpl(42);
                ReteTuple different = new ReteTuple(workingMemory, dec, fact);
                agenda.addToAgenda( different,
                                    rule );
            }
        } );

        ReteTuple tuple = new ReteTuple( workingMemory );
       
        /*
         * This is not recursive but different fact so should activate another rule
         */
        rule.setNoLoop( true );
        agenda.addToAgenda( tuple,
                            rule );
        assertEquals( 1,
                      agenda.size( ) );
        agenda.fireNextItem( null );
View Full Code Here

TOP

Related Classes of org.drools.rule.Rule

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.