[jboss-svn-commits] JBL Code SVN: r15472 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/brms/client/modeldriven and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Oct 1 04:55:29 EDT 2007
Author: michael.neale at jboss.com
Date: 2007-10-01 04:55:29 -0400 (Mon, 01 Oct 2007)
New Revision: 15472
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java
Log:
fix for enums and globals and super enums
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java 2007-10-01 08:54:06 UTC (rev 15471)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java 2007-10-01 08:55:29 UTC (rev 15472)
@@ -5,6 +5,8 @@
import java.util.Map;
import java.util.Set;
+import org.drools.brms.client.modeldriven.brl.ActionFieldList;
+import org.drools.brms.client.modeldriven.brl.ActionFieldValue;
import org.drools.brms.client.modeldriven.brl.DSLSentence;
import org.drools.brms.client.modeldriven.brl.FactPattern;
import org.drools.brms.client.modeldriven.brl.FieldConstraint;
@@ -258,26 +260,46 @@
}
}
-
return (String[]) this.dataEnumLists.get(pat.factType + "." + field);
}
+ public String[] getEnums(String type, ActionFieldValue[] currentValues, String field) {
+ Map dataEnumLookupFields = loadDataEnumLookupFields();
+ String typeField = (String) dataEnumLookupFields.get(type + "." + field );
+
+ if (currentValues != null) {
+ for (int i = 0; i < currentValues.length; i++) {
+ ActionFieldValue val = currentValues[i];
+ if (val.field.equals(typeField)) {
+ String key = type + "." + field + "[" + typeField + "=" + val.value + "]";
+ return (String[]) this.dataEnumLists.get(key);
+ }
+ }
+ }
+
+ return (String[]) this.dataEnumLists.get(type + "." + field);
+
+
+ }
+
+
private Map loadDataEnumLookupFields() {
if (this.dataEnumLookupFields == null) {
this.dataEnumLookupFields = new HashMap();
+ Set keys = this.dataEnumLists.keySet();
+ for (Iterator iter = keys.iterator(); iter.hasNext();) {
+ String key = (String) iter.next();
+ if (key.indexOf('[') != -1) {
+ int ix = key.indexOf('[');
+ String factField = key.substring(0, ix);
+ String predicate = key.substring(ix + 1, key.indexOf(']'));
+ String typeField = predicate.substring(0, predicate.indexOf('='));
+ dataEnumLookupFields.put(factField, typeField);
+ }
+ }
}
- Set keys = this.dataEnumLists.keySet();
- for (Iterator iter = keys.iterator(); iter.hasNext();) {
- String key = (String) iter.next();
- if (key.indexOf('[') != -1) {
- int ix = key.indexOf('[');
- String factField = key.substring(0, ix);
- String predicate = key.substring(ix + 1, key.indexOf(']'));
- String typeField = predicate.substring(0, predicate.indexOf('='));
- dataEnumLookupFields.put(factField, typeField);
- }
- }
+
return dataEnumLookupFields;
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java 2007-10-01 08:54:06 UTC (rev 15471)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java 2007-10-01 08:55:29 UTC (rev 15472)
@@ -6,6 +6,7 @@
import junit.framework.TestCase;
+import org.drools.brms.client.modeldriven.brl.ActionFieldValue;
import org.drools.brms.client.modeldriven.brl.FactPattern;
import org.drools.brms.client.modeldriven.brl.SingleFieldConstraint;
import org.drools.brms.server.rules.SuggestionCompletionLoader;
@@ -260,6 +261,16 @@
assertEquals("colour", result[1]);
+ ActionFieldValue[] vals = new ActionFieldValue[2];
+ vals[0] = new ActionFieldValue("type", "sex", "blah");
+ vals[1] = new ActionFieldValue("value", null, "blah");
+ result = sce.getEnums("Fact", vals, "value");
+ assertNotNull(result);
+ assertEquals(2, result.length);
+ assertEquals("M", result[0]);
+ assertEquals("F", result[1]);
+
+
}
private void assertContains(final String string,
More information about the jboss-svn-commits
mailing list