[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