Revision: 10373
Author:   gwt.mirror...@gmail.com
Date:     Wed Jun 22 01:49:11 2011
Log:      Integrate r10359 into GWT 2.4 branch.

http://code.google.com/p/google-web-toolkit/source/detail?r=10373

Modified:
/releases/2.4/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java /releases/2.4/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java /releases/2.4/user/test/com/google/web/bindery/requestfactory/shared/SimpleEnum.java

=======================================
--- /releases/2.4/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java Mon Apr 18 02:42:06 2011 +++ /releases/2.4/user/src/com/google/web/bindery/autobean/shared/ValueCodex.java Wed Jun 22 01:49:11 2011
@@ -123,6 +123,11 @@
       }
     },
     ENUM(Enum.class) {
+      @Override
+      public boolean canUpcast(Object value) {
+        return value instanceof Enum;
+      }
+
       @Override
       public Enum<?> decode(Class<?> clazz, Splittable value) {
         return (Enum<?>) clazz.getEnumConstants()[(int) value.asNumber()];
@@ -352,7 +357,7 @@
    * May return <code>null</code>.
    */
   private static <T> Type findType(Class<T> clazz) {
-    if (clazz.isEnum()) {
+ if (clazz.isEnum() || (clazz.getSuperclass() != null && clazz.getSuperclass().isEnum())) {
       return Type.ENUM;
     }
     return TYPES_BY_CLASS.get(clazz);
=======================================
--- /releases/2.4/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java Mon Apr 18 02:42:06 2011 +++ /releases/2.4/user/test/com/google/web/bindery/autobean/shared/AutoBeanCodexTest.java Wed Jun 22 01:49:11 2011
@@ -141,7 +141,17 @@
   }

   enum MyEnum {
-    FOO, BAR,
+    FOO,
+    /**
+     * Contains a method that cannot even be called, but is enough to make
+     * MyEnum.BAR.getClass().isEnum()==false, because BAR's class is now an
+     * anonymous subclass of MyEnum.
+     */
+    BAR {
+      @SuppressWarnings("unused")
+      private void dummy() {
+      }
+    },
     // The eclipse formatter wants to put this annotation inline
     @PropertyName("quux")
     BAZ;
=======================================
--- /releases/2.4/user/test/com/google/web/bindery/requestfactory/shared/SimpleEnum.java Tue Apr 5 10:47:39 2011 +++ /releases/2.4/user/test/com/google/web/bindery/requestfactory/shared/SimpleEnum.java Wed Jun 22 01:49:11 2011
@@ -19,5 +19,15 @@
  * Test enum class.
  */
 public enum SimpleEnum {
-  FOO, BAR
-}
+  FOO,
+  /**
+   * Contains a method that cannot even be called, but is enough to make
+ * SimpleEnum.BAR.getClass().isEnum()==false, because BAR's class is now an
+   * anonymous subclass of MyEnum.
+   */
+  BAR {
+    @SuppressWarnings("unused")
+    private void dummy() {
+    }
+  }
+}

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to