[jboss-svn-commits] JBL Code SVN: r29596 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/guvnor/server/rules and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 13 15:11:13 EDT 2009
Author: nheron
Date: 2009-10-13 15:11:13 -0400 (Tue, 13 Oct 2009)
New Revision: 29596
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/EnumClass.java
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/SuggestionCompletionEngineBuilder.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SomeFact.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java
Log:
GUVNOR-182 - Enums are not supported in Guvnor
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/SuggestionCompletionEngineBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/SuggestionCompletionEngineBuilder.java 2009-10-13 15:43:17 UTC (rev 29595)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/util/SuggestionCompletionEngineBuilder.java 2009-10-13 19:11:13 UTC (rev 29596)
@@ -181,15 +181,37 @@
Type type = field.getGenericType();
if (type instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) type;
- Type goodType=null;
+ Type goodType = null;
for (Type t : pt.getActualTypeArguments()) {
goodType = t;
}
int index = goodType.toString().lastIndexOf(".");
- String className = goodType.toString().substring(index+1);
- this.instance.fieldParametersType.put(fieldName,className);
- }
+ String className = goodType.toString().substring(index + 1);
+ this.instance.fieldParametersType.put(fieldName, className);
+
+ }
+
+ Class<?> fieldClass = field.getType();
+ if(fieldClass.isEnum()) {
+ Field[] flds = fieldClass.getDeclaredFields();
+ List<String> listEnum = new ArrayList<String>();
+ int i=0;
+ for (Field f : flds) {
+ if(f.isEnumConstant()) {
+ listEnum.add(i+ "="+f.getName());
+ i++;
+ }
+ }
+ String a[] = new String[listEnum.size()];
+ i = 0;
+ for (String value : listEnum) {
+ a[i] = value;
+ i++;
+ }
+ this.instance.dataEnumLists.put(fieldName, a);
+ }
}
+
}
this.instance.globalTypes = this.globalTypes;
this.instance.actionDSLSentences = makeArray(this.actionDSLSentences);
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/EnumClass.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/EnumClass.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/EnumClass.java 2009-10-13 19:11:13 UTC (rev 29596)
@@ -0,0 +1,11 @@
+/*
+ * Created by IntelliJ IDEA.
+ * User: nheron
+ * Date: 16 sept. 2009
+ * Time: 21:17:28
+ */
+package org.drools.guvnor.server.rules;
+
+public enum EnumClass {
+ v1,v2,v3
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SomeFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SomeFact.java 2009-10-13 15:43:17 UTC (rev 29595)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SomeFact.java 2009-10-13 19:11:13 UTC (rev 29596)
@@ -33,6 +33,10 @@
private List<String> factListString = new ArrayList<String>();
+
+
+ private EnumClass anEnum;
+
public int getAge() {
return age;
}
@@ -143,5 +147,11 @@
public void setFactList(List<SomeFact> factList) {
this.factList = factList;
}
+ public EnumClass getAnEnum() {
+ return anEnum;
+ }
+ public void setAnEnum(EnumClass anEnum) {
+ this.anEnum = anEnum;
+ }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java 2009-10-13 15:43:17 UTC (rev 29595)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java 2009-10-13 19:11:13 UTC (rev 29596)
@@ -114,7 +114,20 @@
assertEquals("bigDecimal", fields[2]);
}
+ public void testEnumFields() throws Exception {
+ SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
+ SuggestionCompletionEngine eng = loader.getSuggestionEngine( "package foo \n import org.drools.guvnor.server.rules.SomeFact", new ArrayList(), new ArrayList() );
+ assertNotNull(eng);
+ assertNotNull(eng.dataEnumLists);
+ assertEquals(eng.dataEnumLists.get("SomeFact.anEnum").length,3);
+ String a[] = eng.dataEnumLists.get("SomeFact.anEnum") ;
+ assertEquals(a[0],"0="+EnumClass.v1);
+ assertEquals(a[1],"1="+EnumClass.v2);
+ assertEquals(a[2],"2="+EnumClass.v3);
+
+
+ }
public void testSortOrderOfFacts() throws Exception {
SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
SuggestionCompletionEngine eng = loader.getSuggestionEngine( "package foo \n import org.drools.guvnor.server.rules.SomeFact\n import org.drools.Person", new ArrayList(), new ArrayList() );
More information about the jboss-svn-commits
mailing list