Reviewers: Ray Ryan,

Description:
Doubles can now be sent over the wire.

Patch by: amitmanjhi
Review by: rjrjr (desk review)


Please review this at http://gwt-code-reviews.appspot.com/503801/show

Affected files:
M trunk/bikeshed/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java M trunk/bikeshed/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java
  M trunk/bikeshed/war/WEB-INF/appengine-web.xml


Index: trunk/bikeshed/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java
===================================================================
--- trunk/bikeshed/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java (revision 8045) +++ trunk/bikeshed/src/com/google/gwt/requestfactory/server/RequestFactoryServlet.java (working copy)
@@ -542,6 +542,17 @@
     if (idValue.getClass() == String.class && idType == Long.class) {
       return new Long((String) idValue);
     }
+    if (idType == Double.class) {
+      if (idValue.getClass() == Integer.class) {
+        return new Double((Integer) idValue);
+      }
+      if (idValue.getClass() == Long.class) {
+        return new Double((Long) idValue);
+      }
+      if (idValue.getClass() == Float.class) {
+        return new Double((Float) idValue);
+      }
+    }
throw new IllegalArgumentException("id is of type: " + idValue.getClass()
         + ",  expected type: " + idType);
   }
Index: trunk/bikeshed/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java
===================================================================
--- trunk/bikeshed/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java (revision 8045) +++ trunk/bikeshed/src/com/google/gwt/valuestore/shared/impl/RecordJsoImpl.java (working copy)
@@ -77,6 +77,9 @@
       return (V) Integer.valueOf(getInt(property.getName()));
     }
     if (Double.class.equals(property.getType())) {
+      if (!isDefined(property.getName())) {
+        return (V) new Double(0.0);
+      }
       return (V) Double.valueOf(getDouble(property.getName()));
     }
     if (Date.class.equals(property.getType())) {
@@ -158,6 +161,10 @@
     if (value instanceof Date) {
       double millis = (double) ((Date) value).getTime();
       setDouble(property.getName(), millis);
+      return;
+    }
+    if (value instanceof Double) {
+      setDouble(property.getName(), (Double) value);
       return;
     }
throw new UnsupportedOperationException("Can't yet set properties of type "
Index: trunk/bikeshed/war/WEB-INF/appengine-web.xml
===================================================================
--- trunk/bikeshed/war/WEB-INF/appengine-web.xml        (revision 8045)
+++ trunk/bikeshed/war/WEB-INF/appengine-web.xml        (working copy)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <appengine-web-app xmlns="http://appengine.google.com/ns/1.0";>
        <application>gwt-bikeshed</application>
-       <version>3</version>
+       <version>4</version>
        
        <!-- Configure java.util.logging -->
        <system-properties>


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

Reply via email to