]> source.dussan.org Git - gwtquery.git/commitdiff
add enum support
authorJulien Dramaix <julien.dramaix@gmail.com>
Mon, 9 Jan 2012 15:34:32 +0000 (15:34 +0000)
committerJulien Dramaix <julien.dramaix@gmail.com>
Mon, 9 Jan 2012 15:34:32 +0000 (15:34 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/rebind/JsonBuilderGenerator.java

index 3fcb79bff69c2ae0f8de409fd338fd129e123d05..ea358f90ba103ac84b697b465cae04f320baa9ef 100644 (file)
@@ -44,8 +44,10 @@ public class JsonBuilderGenerator extends Generator {
   static JClassType jsonBuilderType;\r
   static JClassType stringType;\r
   static JClassType jsType;\r
-  static JClassType listType;\r
+  static JClassType listType;
   static JClassType functionType;\r
+  static JClassType enumType;\r
+
 \r
   public String generate(TreeLogger treeLogger,\r
       GeneratorContext generatorContext, String requestedClass)\r
@@ -55,8 +57,9 @@ public class JsonBuilderGenerator extends Generator {
     jsonBuilderType = oracle.findType(JsonBuilder.class.getName());\r
     stringType = oracle.findType(String.class.getName());\r
     jsType = oracle.findType(JavaScriptObject.class.getName());\r
-    listType = oracle.findType(List.class.getName());\r
+    listType = oracle.findType(List.class.getName());
     functionType = oracle.findType(Function.class.getName());\r
+    enumType = oracle.findType(Enum.class.getName());
 \r
     String t[] = generateClassName(clazz);\r
 \r
@@ -153,9 +156,10 @@ public class JsonBuilderGenerator extends Generator {
           sw.println("return " + ret + ";");\r
         } else {\r
           sw.println("return Arrays.asList(" + ret + ");");\r
-        }\r
-        \r
-      } else {\r
+        }
+      } else if (isTypeAssignableTo(method.getReturnType(), enumType)){  \r
+        sw.println("return "+method.getReturnType().getQualifiedSourceName()+".valueOf(p.getStr(\"" + name + "\"));");\r
+      }else {
         sw.println("System.err.println(\"JsonBuilderGenerator WARN: unknown return type " \r
             + retType + " " + ifaceName + "." + methName + "()\"); ");\r
         // We return the object because probably the user knows how to handle it\r