Package org.drools.core.rule

Examples of org.drools.core.rule.Rule


        int salience = stream.readInt();

        String pkgName = stream.readUTF();
        String ruleName = stream.readUTF();
        Package pkg = ruleBase.getPackage( pkgName );
        Rule rule = pkg.getRule( ruleName );

        RuleTerminalNode ruleTerminalNode = (RuleTerminalNode) leftTuple.getLeftTupleSink();

        PropagationContext pc = context.propagationContexts.get( stream.readLong() );

        AgendaItem activation;

        boolean scheduled = false;
        if (rule.getTimer() != null) {
            activation = new ScheduledAgendaItem( activationNumber,
                                                  leftTuple,
                                                  (InternalAgenda) wm.getAgenda(),
                                                  pc,
                                                  ruleTerminalNode );
            scheduled = true;
        } else {
            activation = new AgendaItem( activationNumber,
                                         leftTuple,
                                         salience,
                                         pc,
                                         ruleTerminalNode );
        }
        leftTuple.setObject( activation );

        if (stream.readBoolean()) {
            String activationGroupName = stream.readUTF();
            ( (DefaultAgenda) wm.getAgenda() ).getActivationGroup( activationGroupName ).addActivation( activation );
        }

        boolean activated = stream.readBoolean();
        activation.setActivated( activated );

        if (stream.readBoolean()) {
            InternalFactHandle handle = context.handles.get( stream.readInt() );
            activation.setFactHandle( handle );
            handle.setObject( activation );
        }

        InternalAgendaGroup agendaGroup;
        if (rule.getAgendaGroup() == null || rule.getAgendaGroup().equals( "" ) ||
            rule.getAgendaGroup().equals( AgendaGroup.MAIN )) {
            // Is the Rule AgendaGroup undefined? If it is use MAIN,
            // which is added to the Agenda by default
            agendaGroup = (InternalAgendaGroup) ( (DefaultAgenda) wm.getAgenda() ).getAgendaGroup( AgendaGroup.MAIN );
        } else {
            // AgendaGroup is defined, so try and get the AgendaGroup
            // from the Agenda
            agendaGroup = (InternalAgendaGroup) ( (DefaultAgenda) wm.getAgenda() ).getAgendaGroup( rule.getAgendaGroup() );
        }

        activation.setAgendaGroup( agendaGroup );

        if (!scheduled && activated) {
            if (rule.getRuleFlowGroup() == null) {
                agendaGroup.add( activation );
            } else {
                InternalRuleFlowGroup rfg = (InternalRuleFlowGroup) ( (DefaultAgenda) wm.getAgenda() ).getRuleFlowGroup( rule.getRuleFlowGroup() );
                rfg.addActivation( activation );
            }
        }

        throw new UnsupportedOperationException(); // MDP need to update as we now have a TMS per EntryPoint
View Full Code Here


        ObjectInputStream stream = context.stream;
        InternalRuleBase ruleBase = context.ruleBase;

        int type = stream.readInt();

        Rule rule = null;
        if (stream.readBoolean()) {
            String pkgName = stream.readUTF();
            String ruleName = stream.readUTF();
            Package pkg = ruleBase.getPackage( pkgName );
            rule = pkg.getRule( ruleName );
View Full Code Here

    @Test
    public void testModify() {
        String rule1 = "modify( $a ) { setA( 20 ), setB( $bb ) }";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(1, consequenceMetaData.getStatements().size());
        ConsequenceMetaData.Statement statment = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.MODIFY, statment.getType());
        assertEquals("org.drools.A", statment.getFactClassName());
View Full Code Here

    @Test
    public void testModify2() {
        String rule1 = "modify( $a ) { setC( $bc ) };\n modify( $b ) { c = \"Hello\" };";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(2, consequenceMetaData.getStatements().size());

        ConsequenceMetaData.Statement statment1 = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.MODIFY, statment1.getType());
        assertEquals("org.drools.A", statment1.getFactClassName());
View Full Code Here

    @Test
    public void testRetract() {
        String rule1 = "retract( $b );";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(1, consequenceMetaData.getStatements().size());

        ConsequenceMetaData.Statement statment = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.RETRACT, statment.getType());
        assertEquals(RuleMetadataTest.B.class.getName(), statment.getFactClassName());
View Full Code Here

    @Test
    public void testRetractWithFunction() {
        String rule1 = "retract( getA($a) );";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(1, consequenceMetaData.getStatements().size());

        ConsequenceMetaData.Statement statment = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.RETRACT, statment.getType());
        assertEquals("org.drools.A", statment.getFactClassName());
View Full Code Here

    @Test
    public void testUpdate() {
        String rule1 = "$a.setA( 20 );\n $a.setB( $bb );\n update( $a );";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(1, consequenceMetaData.getStatements().size());
        ConsequenceMetaData.Statement statment = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.MODIFY, statment.getType());
        assertEquals("org.drools.A", statment.getFactClassName());
View Full Code Here

    @Test
    public void testUpdate2() {
        String rule1 = "$a.setC( $bc );\n $b.c = \"Hello\";\n update( $a );\n update( $b );";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(2, consequenceMetaData.getStatements().size());

        ConsequenceMetaData.Statement statment1 = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.MODIFY, statment1.getType());
        assertEquals("org.drools.A", statment1.getFactClassName());
View Full Code Here

    @Test
    public void testInsert() {
        String rule1 = "insert( new A(1, $bb, \"3\") );";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(1, consequenceMetaData.getStatements().size());
        ConsequenceMetaData.Statement statment = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.INSERT, statment.getType());
        assertEquals("org.drools.A", statment.getFactClassName());
View Full Code Here

    @Test
    public void testInsert2() {
        String rule1 = "insert( new B(1, $ab) );";
        KnowledgeBase kbase = getKnowledgeBase(rule1);
        Rule rule = getRule(kbase, "R0");

        ConsequenceMetaData consequenceMetaData = rule.getConsequenceMetaData();
        assertEquals(1, consequenceMetaData.getStatements().size());
        ConsequenceMetaData.Statement statment = consequenceMetaData.getStatements().get(0);
        assertEquals(ConsequenceMetaData.Statement.Type.INSERT, statment.getType());
        assertEquals(RuleMetadataTest.B.class.getName(), statment.getFactClassName());
    }
View Full Code Here

TOP

Related Classes of org.drools.core.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.