[jboss-svn-commits] JBL Code SVN: r11079 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/brms/server/converter and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 17 22:02:44 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-04-17 22:02:44 -0400 (Tue, 17 Apr 2007)
New Revision: 11079

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/CompositeFactPattern.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/converter/BRXMLToDescrConverter.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/RuleModelTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/converter/BRXMLToDescrConverterTest.java
Log:
JBRULES-802 Bound fields

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/CompositeFactPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/CompositeFactPattern.java	2007-04-17 22:29:28 UTC (rev 11078)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/CompositeFactPattern.java	2007-04-18 02:02:44 UTC (rev 11079)
@@ -8,9 +8,9 @@
 public class CompositeFactPattern
     implements
     IPattern {
-    public static final String NOT    = "not";
-    public static final String EXISTS = "exists";
-    public static final String OR     = "or";
+    public static final String COMPOSITE_TYPE_NOT    = "not";
+    public static final String COMPOSITE_TYPE_EXISTS = "exists";
+    public static final String COMPOSITE_TYPE_OR     = "or";
 
     /**
      * this will one of: [Not, Exist, Or]
@@ -18,6 +18,9 @@
     public String              type;
     public FactPattern[]       patterns;
 
+    /**
+     * This type should be from the contants in this class of course.
+     */
     public CompositeFactPattern(final String type) {
         this.type = type;
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java	2007-04-17 22:29:28 UTC (rev 11078)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brxml/RuleModel.java	2007-04-18 02:02:44 UTC (rev 11079)
@@ -229,5 +229,36 @@
         }
         return result;
     }
+    
+    /**
+     * This will get a list of all bound variables, including bound fields.
+     */
+    public List getAllVariables() {
+        List result = new ArrayList();
+        for ( int i = 0; i < this.lhs.length; i++ ) {
+            IPattern pat = this.lhs[i];
+            if (pat instanceof FactPattern) {
+                FactPattern fact = (FactPattern) pat;
+                if (fact.isBound()) {
+                    result.add( fact.boundName );
+                }
+                for ( int j = 0; j < fact.constraints.length; j++ ) {
+                    Constraint con = fact.constraints[j];
+                    if (con.isBound()) {
+                        result.add( con.fieldBinding );
+                    }
+                }
+            } 
+        }
+        return result;
+    }
 
+    /**
+     * Checks to see if a variable is used or not, includes fields 
+     * as well as facts.
+     */
+    public boolean isVariableNameUsed(String s) {
+        return getAllVariables().contains( s );
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/converter/BRXMLToDescrConverter.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/converter/BRXMLToDescrConverter.java	2007-04-17 22:29:28 UTC (rev 11078)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/converter/BRXMLToDescrConverter.java	2007-04-18 02:02:44 UTC (rev 11079)
@@ -71,11 +71,11 @@
     private void addComposite(final ConditionalElementDescr ce,
                               final CompositeFactPattern pattern) {
         ConditionalElementDescr inner = null;
-        if ( CompositeFactPattern.OR.equals( pattern.type ) ) {
+        if ( CompositeFactPattern.COMPOSITE_TYPE_OR.equals( pattern.type ) ) {
             inner = new OrDescr();
-        } else if ( CompositeFactPattern.NOT.equals( pattern.type ) ) {
+        } else if ( CompositeFactPattern.COMPOSITE_TYPE_NOT.equals( pattern.type ) ) {
             inner = new NotDescr();
-        } else if ( CompositeFactPattern.EXISTS.equals( pattern.type ) ) {
+        } else if ( CompositeFactPattern.COMPOSITE_TYPE_EXISTS.equals( pattern.type ) ) {
             inner = new ExistsDescr();
         }
         for ( int i = 0; i < pattern.patterns.length; i++ ) {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java	2007-04-17 22:29:28 UTC (rev 11078)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/rules/SuggestionCompletionLoader.java	2007-04-18 02:02:44 UTC (rev 11079)
@@ -46,7 +46,7 @@
     private final SuggestionCompletionEngineBuilder builder = new SuggestionCompletionEngineBuilder();
     private final DrlParser                         parser  = new DrlParser();
     private final ByteArrayClassLoader        loader;
-    protected List                            errors;
+    protected List                            errors = new ArrayList();
 
     public SuggestionCompletionLoader() {
         this.loader = new ByteArrayClassLoader( this.getClass().getClassLoader() );
@@ -61,7 +61,6 @@
     public SuggestionCompletionEngine getSuggestionEngine(final String header,
                                                           final List jars,
                                                           final List dsls) {
-        this.errors = new ArrayList();
         this.builder.newCompletionEngine();
 
         if ( !header.trim().equals( "" ) ) {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/RuleModelTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/RuleModelTest.java	2007-04-17 22:29:28 UTC (rev 11078)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/RuleModelTest.java	2007-04-18 02:02:44 UTC (rev 11079)
@@ -6,6 +6,7 @@
 
 import org.drools.brms.client.modeldriven.brxml.ActionRetractFact;
 import org.drools.brms.client.modeldriven.brxml.ActionSetField;
+import org.drools.brms.client.modeldriven.brxml.CompositeFactPattern;
 import org.drools.brms.client.modeldriven.brxml.ConnectiveConstraint;
 import org.drools.brms.client.modeldriven.brxml.Constraint;
 import org.drools.brms.client.modeldriven.brxml.FactPattern;
@@ -170,6 +171,30 @@
                       b.get( 1 ) );
 
     }
+    
+    public void testAllVariableBindings() {
+        final RuleModel model = new RuleModel();
+        model.lhs = new IPattern[2];
+        final FactPattern x = new FactPattern( "Car" );
+        model.lhs[0] = x;
+        x.boundName = "boundFact";        
+        x.constraints = new Constraint[2];
+        x.constraints[0] = new Constraint("q");
+        x.constraints[0].fieldBinding = "field1";
+        x.constraints[1] = new Constraint("w");
+        x.constraints[1].fieldBinding = "field2";
+        
+        model.lhs[1] = new CompositeFactPattern();
+     
+        List vars = model.getAllVariables();
+        assertEquals(3, vars.size());
+        assertEquals("boundFact", vars.get( 0 ));
+        assertEquals("field1", vars.get( 1 ));
+        assertEquals("field2", vars.get( 2 ));
+        
+        assertTrue(model.isVariableNameUsed( "field2" ));
+        
+    }
 
     public void testRemoveItemLhs() {
         final RuleModel model = new RuleModel();

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/converter/BRXMLToDescrConverterTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/converter/BRXMLToDescrConverterTest.java	2007-04-17 22:29:28 UTC (rev 11078)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/converter/BRXMLToDescrConverterTest.java	2007-04-18 02:02:44 UTC (rev 11079)
@@ -51,7 +51,7 @@
         model.addLhsItem( pat1 );
 
         final CompositeFactPattern comp1 = new CompositeFactPattern();
-        comp1.type = CompositeFactPattern.OR;
+        comp1.type = CompositeFactPattern.COMPOSITE_TYPE_OR;
 
         final FactPattern pat2 = new FactPattern( "Person" );
         final FactPattern pat3 = new FactPattern( "People" );




More information about the jboss-svn-commits mailing list