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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jul 7 03:45:22 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-07-07 03:45:22 -0400 (Sat, 07 Jul 2007)
New Revision: 13206

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/RuleModelTest.java
   labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/model/SnippetBuilderTest.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRLContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
Log:
JBRULES-983

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java	2007-07-07 05:54:55 UTC (rev 13205)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java	2007-07-07 07:45:22 UTC (rev 13206)
@@ -270,4 +270,28 @@
         return getAllVariables().contains( s );
     }
 
+    /**
+     * Returns true if any DSLSentences are used.
+     */
+    public boolean hasDSLSentences() {
+        
+        if (this.lhs != null) {
+            for ( int i = 0; i < this.lhs.length; i++ ) {
+                if ( lhs[i] instanceof DSLSentence ) {
+                    return true;
+                }
+            }
+        }
+        
+        if (this.rhs != null) {
+            for ( int i = 0; i < this.rhs.length; i++ ) {
+                if ( rhs[i] instanceof DSLSentence ) {
+                    return true;
+                }
+            }
+        }
+        
+        return false;
+   }
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java	2007-07-07 05:54:55 UTC (rev 13205)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java	2007-07-07 07:45:22 UTC (rev 13206)
@@ -43,18 +43,9 @@
      * @see org.drools.brms.server.util.BRLPersistence#marshal(org.drools.brms.client.modeldriven.brl.RuleModel)
      */
     public String marshal(RuleModel model) {
-        boolean isDSLEnhanced = false;
-        for ( int i = 0; !isDSLEnhanced && i < model.lhs.length; i++ ) {
-            if ( model.lhs[i] instanceof DSLSentence ) {
-                isDSLEnhanced = true;
-            }
-        }
-        for ( int i = 0; !isDSLEnhanced && i < model.rhs.length; i++ ) {
-            if ( model.rhs[i] instanceof DSLSentence ) {
-                isDSLEnhanced = true;
-            }
-        }
+        boolean isDSLEnhanced = model.hasDSLSentences();
 
+
         StringBuffer buf = new StringBuffer();
         buf.append( "rule \"" + model.name + "\"\n" );
         this.marshalAttributes( buf,

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-07-07 05:54:55 UTC (rev 13205)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/RuleModelTest.java	2007-07-07 07:45:22 UTC (rev 13206)
@@ -9,6 +9,7 @@
 import org.drools.brms.client.modeldriven.brl.CompositeFactPattern;
 import org.drools.brms.client.modeldriven.brl.CompositeFieldConstraint;
 import org.drools.brms.client.modeldriven.brl.ConnectiveConstraint;
+import org.drools.brms.client.modeldriven.brl.DSLSentence;
 import org.drools.brms.client.modeldriven.brl.FactPattern;
 import org.drools.brms.client.modeldriven.brl.IAction;
 import org.drools.brms.client.modeldriven.brl.IPattern;
@@ -352,5 +353,34 @@
         assertEquals( at2,
                       m.attributes[0] );
     }
+    
+    public void testIsDSLEnhanced() throws Exception {
+        RuleModel m = new RuleModel();
+        
+        assertFalse(m.hasDSLSentences());
+        
+        m.addLhsItem( new FactPattern() );
+        assertFalse(m.hasDSLSentences());
+        
+        m.addRhsItem( new ActionSetField("q") );
+        
+        assertFalse(m.hasDSLSentences());
+        
+        m.addLhsItem( new DSLSentence() );
+        assertTrue(m.hasDSLSentences());
+        
+        m.addRhsItem( new DSLSentence() );
+        assertTrue(m.hasDSLSentences());
+        
+        m = new RuleModel();
+        
+        m.addLhsItem( new DSLSentence() );
+        assertTrue(m.hasDSLSentences());
+        
+        m = new RuleModel();
+        m.addRhsItem( new DSLSentence() );
+        assertTrue(m.hasDSLSentences());
+        
+    }
 
 }

Modified: labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/model/SnippetBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/model/SnippetBuilderTest.java	2007-07-07 05:54:55 UTC (rev 13205)
+++ labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/model/SnippetBuilderTest.java	2007-07-07 07:45:22 UTC (rev 13206)
@@ -74,5 +74,14 @@
                       result );
 
     }
+    
+    public void testStartWithParam() {
+        final String snippet = "$1 goo $2";
+        final SnippetBuilder snip = new SnippetBuilder( snippet );
+        final String result = snip.build( "x, y" );
+        assertEquals( "x goo y",
+                      result );
+        
+    }
 
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRLContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRLContentHandler.java	2007-07-07 05:54:55 UTC (rev 13205)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRLContentHandler.java	2007-07-07 07:45:22 UTC (rev 13206)
@@ -70,7 +70,7 @@
 		RuleModel model = BRXMLPersistence.getInstance().unmarshal(
 				asset.getContent());
 		String drl = BRDRLPersistence.getInstance().marshal(model);
-		if (builder.hasDSL()) {
+		if (builder.hasDSL() && model.hasDSLSentences()) {
 			drl = builder.getDSLExpander().expand(drl);
 		}
 		return drl;

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java	2007-07-07 05:54:55 UTC (rev 13205)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/ContentPackageAssemblerTest.java	2007-07-07 07:45:22 UTC (rev 13206)
@@ -475,8 +475,8 @@
         //create our package
         PackageItem pkg = repo.createPackage( "testBRLWithDSLMixedIn", "" );
         pkg.updateHeader( "import org.drools.Person" );
-        AssetItem rule2 = pkg.addAsset( "rule2", "" );
-        rule2.updateFormat( AssetFormats.BUSINESS_RULE );
+        AssetItem rule1 = pkg.addAsset( "rule2", "" );
+        rule1.updateFormat( AssetFormats.BUSINESS_RULE );
         
         AssetItem dsl = pkg.addAsset( "MyDSL", "" );
         dsl.updateFormat( AssetFormats.DSL );
@@ -504,16 +504,38 @@
         
         model.addRhsItem( dslAction );
         
-        rule2.updateContent( BRXMLPersistence.getInstance().marshal( model ) );
-        rule2.checkin( "" );
+        rule1.updateContent( BRXMLPersistence.getInstance().marshal( model ) );
+        rule1.checkin( "" );
         repo.save();
+
         
+        //now add a rule with no DSL
+        model = new RuleModel();
+        model.name = "ruleNODSL";
+        pattern = new FactPattern("Person");
+        pattern.boundName = "p";
+        action = new ActionSetField("p");
+        value = new ActionFieldValue("age", "42", SuggestionCompletionEngine.TYPE_NUMERIC );
+        action.addFieldValue( value );
+        
+        model.addLhsItem( pattern );
+        model.addRhsItem( action );
+
+        
+        AssetItem ruleNODSL = pkg.addAsset( "ruleNoDSL", "" );
+        ruleNODSL.updateFormat( AssetFormats.BUSINESS_RULE );
+     
+        ruleNODSL.updateContent( BRXMLPersistence.getInstance().marshal( model ) );
+        ruleNODSL.checkin( "" );
+        
+        
         pkg = repo.loadPackage( "testBRLWithDSLMixedIn" );
         ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
         assertFalse(asm.hasErrors());
+        Package bpkg = asm.getBinaryPackage();
+        assertEquals(2, bpkg.getRules().length);
         
         
-        
     }
     
     




More information about the jboss-svn-commits mailing list