[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