]> source.dussan.org Git - gwtquery.git/commitdiff
best management of enum
authorjdramaix <julien.dramaix@gmail.com>
Tue, 9 Oct 2012 21:43:05 +0000 (23:43 +0200)
committerjdramaix <julien.dramaix@gmail.com>
Tue, 9 Oct 2012 21:43:05 +0000 (23:43 +0200)
gwtquery-core/src/main/java/com/google/gwt/query/rebind/JsonBuilderGenerator.java

index 067285bf478ea24141d855e4f39eb9576ea086a1..83651e12b6439ed32ebe3f0417e902e07603178b 100644 (file)
  */\r
 package com.google.gwt.query.rebind;\r
 \r
-import java.io.PrintWriter;\r
-import java.util.Collection;\r
-import java.util.HashSet;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
 import com.google.gwt.core.client.JavaScriptObject;\r
 import com.google.gwt.core.ext.Generator;\r
 import com.google.gwt.core.ext.GeneratorContext;\r
@@ -41,10 +34,17 @@ import com.google.gwt.query.client.builders.Name;
 import com.google.gwt.user.rebind.ClassSourceFileComposerFactory;\r
 import com.google.gwt.user.rebind.SourceWriter;\r
 \r
+import java.io.PrintWriter;\r
+import java.util.Collection;\r
+import java.util.HashSet;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
 /**\r
  */\r
 public class JsonBuilderGenerator extends Generator {\r
-  static JClassType enumType;\r
+  \r
   static JClassType functionType;\r
   static JClassType jsonBuilderType;\r
   static JClassType jsType;\r
@@ -77,7 +77,6 @@ public class JsonBuilderGenerator extends Generator {
     jsType = oracle.findType(JavaScriptObject.class.getName());\r
     listType = oracle.findType(List.class.getName());\r
     functionType = oracle.findType(Function.class.getName());\r
-    enumType = oracle.findType(Enum.class.getName());\r
 \r
     String t[] = generateClassName(clazz);\r
 \r
@@ -197,7 +196,7 @@ public class JsonBuilderGenerator extends Generator {
         } else {\r
           sw.println("return Arrays.asList(" + ret + ");");\r
         }\r
-      } else if (isTypeAssignableTo(method.getReturnType(), enumType)){  \r
+      } else if (method.getReturnType().isEnum() != null){  \r
         sw.println("return "+method.getReturnType().getQualifiedSourceName()+".valueOf(p.getStr(\"" + name + "\"));");\r
       }else {\r
         sw.println("System.err.println(\"JsonBuilderGenerator WARN: unknown return type " \r
@@ -211,6 +210,7 @@ public class JsonBuilderGenerator extends Generator {
       JType type = params[0].getType();\r
       JArrayType arr = type.isArray();\r
       JParameterizedType list = type.isParameterized();\r
+      \r
       sw.print("(" + type.getParameterizedQualifiedSourceName() + " a)");\r
       sw.println("{");\r
       sw.indent();\r
@@ -229,7 +229,9 @@ public class JsonBuilderGenerator extends Generator {
         sw.println("p.setBoolean(\"" + name + "\", a);");        \r
       } else if (type.getParameterizedQualifiedSourceName().matches("com.google.gwt.query.client.Function")) {\r
         sw.println("p.setFunction(\"" + name + "\", a);");        \r
-      } else {\r
+      } else if (type.isEnum() != null){  \r
+        sw.println("p.set(\"" + name + "\", a.name());");\r
+      }else {\r
         sw.println("p.set(\"" + name + "\", a);");\r
       }\r
       if (!"void".equals(retType)) {\r