[jboss-svn-commits] JBL Code SVN: r13778 - in labs/jbossrules/tags/4.0.0.13773GA/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:31:04 EDT 2007


Author: tirelli
Date: 2007-07-24 16:31:03 -0400 (Tue, 24 Jul 2007)
New Revision: 13778

Added:
   labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl
Modified:
   labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
   labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
   labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
Log:
JBRULES-1026: fixing bug

Modified: labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
===================================================================
--- labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java	2007-07-24 20:26:48 UTC (rev 13777)
+++ labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java	2007-07-24 20:31:03 UTC (rev 13778)
@@ -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/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java	2007-07-24 20:26:48 UTC (rev 13777)
+++ labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java	2007-07-24 20:31:03 UTC (rev 13778)
@@ -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/tags/4.0.0.13773GA/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
===================================================================
--- labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java	2007-07-24 20:26:48 UTC (rev 13777)
+++ labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java	2007-07-24 20:31:03 UTC (rev 13778)
@@ -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() );
+    }
+
 }

Copied: labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl (from rev 13777, labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl)
===================================================================
--- labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl	                        (rev 0)
+++ labs/jbossrules/tags/4.0.0.13773GA/drools-compiler/src/test/resources/org/drools/integrationtests/test_MVELCollect.drl	2007-07-24 20:31:03 UTC (rev 13778)
@@ -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