[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