[jboss-svn-commits] JBL Code SVN: r13777 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/rule/builder/dialect/mvel and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 24 16:26:48 EDT 2007
Author: tirelli
Date: 2007-07-24 16:26:48 -0400 (Tue, 24 Jul 2007)
New Revision: 13777
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
Log:
JBRULES-1026: fixing bug
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-07-24 19:34:17 UTC (rev 13776)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-07-24 20:26:48 UTC (rev 13777)
@@ -79,6 +79,8 @@
private final JavaRuleClassBuilder rule = new JavaRuleClassBuilder();
private final MVELFromBuilder from = new MVELFromBuilder();
private final JavaFunctionBuilder function = new JavaFunctionBuilder();
+ private final CollectBuilder collect = new CollectBuilder();
+ private final ForallBuilder forall = new ForallBuilder();
//
private KnowledgeHelperFixer knowledgeHelperFixer;
@@ -133,10 +135,10 @@
this.builders = new HashMap();
this.builders.put( CollectDescr.class,
- new CollectBuilder() );
+ collect );
this.builders.put( ForallDescr.class,
- new ForallBuilder() );
+ forall );
final GroupElementBuilder gebuilder = new GroupElementBuilder();
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-07-24 19:34:17 UTC (rev 13776)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-07-24 20:26:48 UTC (rev 13777)
@@ -22,8 +22,10 @@
import org.drools.lang.descr.AccumulateDescr;
import org.drools.lang.descr.AndDescr;
import org.drools.lang.descr.BaseDescr;
+import org.drools.lang.descr.CollectDescr;
import org.drools.lang.descr.EvalDescr;
import org.drools.lang.descr.ExistsDescr;
+import org.drools.lang.descr.ForallDescr;
import org.drools.lang.descr.FromDescr;
import org.drools.lang.descr.FunctionDescr;
import org.drools.lang.descr.NotDescr;
@@ -35,7 +37,9 @@
import org.drools.rule.LineMappings;
import org.drools.rule.Package;
import org.drools.rule.builder.AccumulateBuilder;
+import org.drools.rule.builder.CollectBuilder;
import org.drools.rule.builder.ConsequenceBuilder;
+import org.drools.rule.builder.ForallBuilder;
import org.drools.rule.builder.FromBuilder;
import org.drools.rule.builder.GroupElementBuilder;
import org.drools.rule.builder.PatternBuilder;
@@ -47,6 +51,7 @@
import org.drools.rule.builder.RuleConditionBuilder;
import org.drools.rule.builder.SalienceBuilder;
import org.drools.rule.builder.dialect.java.JavaDialect;
+import org.drools.rule.builder.dialect.java.JavaFunctionBuilder;
import org.drools.spi.DeclarationScopeResolver;
import org.drools.spi.KnowledgeHelper;
import org.drools.util.StringUtils;
@@ -81,7 +86,10 @@
private final MVELConsequenceBuilder consequence = new MVELConsequenceBuilder();
//private final JavaRuleClassBuilder rule = new JavaRuleClassBuilder();
private final MVELFromBuilder from = new MVELFromBuilder();
-
+ private final JavaFunctionBuilder function = new JavaFunctionBuilder();
+ private final CollectBuilder collect = new CollectBuilder();
+ private final ForallBuilder forall = new ForallBuilder();
+
private Map interceptors;
private List results;
@@ -176,7 +184,16 @@
this.builders.put( EvalDescr.class,
getEvalBuilder() );
+
+ this.builders.put( CollectDescr.class,
+ collect );
+ this.builders.put( ForallDescr.class,
+ forall );
+
+ this.builders.put( FunctionDescr.class,
+ function );
+
}
public void init(Package pkg) {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2007-07-24 19:34:17 UTC (rev 13776)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2007-07-24 20:26:48 UTC (rev 13777)
@@ -605,4 +605,41 @@
}
+ public void testMVELCollect() throws Exception {
+
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_MVELCollect.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final List results = new ArrayList();
+
+ wm.setGlobal( "results",
+ results );
+
+ wm.insert( new Cheese( "stilton",
+ 10 ) );
+ wm.insert( new Cheese( "stilton",
+ 7 ) );
+ wm.insert( new Cheese( "stilton",
+ 8 ) );
+ wm.insert( new Cheese( "brie",
+ 5 ) );
+ wm.insert( new Cheese( "provolone",
+ 150 ) );
+ wm.insert( new Cheese( "provolone",
+ 20 ) );
+ wm.insert( new Person( "Bob",
+ "stilton" ) );
+ wm.insert( new Person( "Mark",
+ "provolone" ) );
+
+ wm.fireAllRules();
+
+ Assert.assertEquals( 1,
+ results.size() );
+ Assert.assertEquals( 6,
+ ((List)results.get(0)).size() );
+ }
+
}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl 2007-07-24 20:26:48 UTC (rev 13777)
@@ -0,0 +1,13 @@
+package org.drools;
+
+import java.util.ArrayList;
+
+global java.util.List results;
+
+rule "test mvel collect"
+ dialect "mvel"
+when
+ $list : ArrayList() from collect( Cheese() )
+then
+ results.add( $list );
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list