[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