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);
- }-*/;
}