Use instance methods on a JSO instead of static methods.

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


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7769 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/bikeshed/src/com/google/gwt/requestfactory/client/gen/ClientRequestObject.java b/bikeshed/src/com/google/gwt/requestfactory/client/gen/ClientRequestObject.java
index 6f247f6..3868f26 100644
--- a/bikeshed/src/com/google/gwt/requestfactory/client/gen/ClientRequestObject.java
+++ b/bikeshed/src/com/google/gwt/requestfactory/client/gen/ClientRequestObject.java
@@ -25,30 +25,28 @@
  */
 public class ClientRequestObject {
 
+  private static class MyJSO extends JavaScriptObject {
+    static native MyJSO create() /*-{
+      return {};
+    }-*/;
+
+    protected MyJSO() {
+    }
+
+    private native void put(String key, String value)/*-{
+      this[key] = value;
+    }-*/;
+
+    private native String toJsonString()/*-{
+      return JSON.stringify(this);
+    }-*/;
+  }
+
   public static String getRequestString(Map<String, String> requestData) {
-    ClientRequestObject requestObject = new ClientRequestObject();
-    requestObject.init();
+    MyJSO requestObject = MyJSO.create();
     for (String key : requestData.keySet()) {
       requestObject.put(key, requestData.get(key));
     }
     return requestObject.toJsonString();
   }
-
-  private JavaScriptObject map;
-
-  ClientRequestObject() {
-    init();
-  }
-
-  private native void init()/*-{
-    this.@com.google.gwt.requestfactory.client.gen.ClientRequestObject::map = {};
-  }-*/;
-
-  private native void put(String key, String value)/*-{
-    this.@com.google.gwt.requestfactory.client.gen.ClientRequestObject::map[key] = value;
-  }-*/;
-
-  private native String toJsonString()/*-{
-    return JSON.stringify(this.@com.google.gwt.requestfactory.client.gen.ClientRequestObject::map);
-  }-*/;
 }