Revision: 8580
Author: [email protected]
Date: Thu Aug 19 13:24:10 2010
Log: Irrespective of the return type, all RF methods now go through the
valueStore.
Added a bunch of missing @Override annotations, removed an unused method in
DeltaValueStoreJsonImpl, Confirmed that instance methods work, have side
effects, and the sync results returned are meaningful.
Patch by: amitmanjhi
Review by: cromwellian, rjrjr (TBR)
http://code.google.com/p/google-web-toolkit/source/detail?r=8580
Modified:
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigDecimalRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigIntegerRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBooleanRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractByteRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractCharacterRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDateRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDoubleRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractEnumRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractFloatRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractIntegerRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonListRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonObjectRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractLongRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractPrimitiveRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractShortRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractStringRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractVoidRequest.java
/trunk/user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
/trunk/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java
/trunk/user/src/com/google/gwt/requestfactory/shared/RequestData.java
/trunk/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
/trunk/user/test/com/google/gwt/valuestore/server/SimpleFoo.java
/trunk/user/test/com/google/gwt/valuestore/shared/SimpleFooRequest.java
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigDecimalRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigDecimalRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,11 +15,10 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
import java.math.BigDecimal;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -38,10 +37,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(new BigDecimal(responseText),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(new BigDecimal(responseText), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigIntegerRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBigIntegerRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,12 +15,11 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
import java.math.BigDecimal;
import java.math.BigInteger;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -39,10 +38,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(new BigDecimal(responseText).toBigInteger(),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(new BigDecimal(responseText).toBigInteger(),
syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBooleanRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractBooleanRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(Boolean.valueOf(responseText),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(Boolean.valueOf(responseText), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractByteRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractByteRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(Integer.valueOf(responseText).byteValue(),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(Integer.valueOf(responseText).byteValue(),
syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractCharacterRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractCharacterRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(responseText.charAt(0),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(responseText.charAt(0), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDateRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDateRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,11 +15,10 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
import java.util.Date;
+import java.util.Set;
/**
* <p>
@@ -38,10 +37,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(new Date(Long.valueOf(responseText)),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(new Date(Long.valueOf(responseText)), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDoubleRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractDoubleRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(Double.valueOf(responseText),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(Double.valueOf(responseText), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractEnumRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractEnumRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -42,13 +41,13 @@
this.enumValues = enumValues;
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
+ Set<SyncResult> syncResults) {
int ordinal = Integer.valueOf(responseText);
for (E e : enumValues) {
if (ordinal == e.ordinal()) {
- receiver.onSuccess(ordinal,
- Collections.<SyncResult> emptySet());
+ receiver.onSuccess(ordinal, syncResults);
}
}
throw new IllegalArgumentException("Invalid enum ordinal value " +
ordinal);
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractFloatRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractFloatRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(Float.valueOf(responseText),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(Float.valueOf(responseText), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractIntegerRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractIntegerRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(Integer.valueOf(responseText),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(Integer.valueOf(responseText), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonListRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonListRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,15 +15,14 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.requestfactory.shared.RecordListRequest;
import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.valuestore.shared.SyncResult;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import java.util.Set;
/**
* <p>
@@ -50,7 +49,8 @@
this.schema = schema;
}
- public void handleResult(Object jsoResult, JavaScriptObject sideEffects)
{
+ @Override
+ public void handleResult(Object jsoResult, Set<SyncResult> syncResults) {
JsArray<RecordJsoImpl> valueJsos = (JsArray<RecordJsoImpl>) jsoResult;
List<T> valueList = new ArrayList<T>(valueJsos.length());
@@ -62,6 +62,6 @@
requestFactory.getValueStore().setRecords(valueJsos, requestFactory);
- receiver.onSuccess(valueList, Collections.<SyncResult> emptySet());
+ receiver.onSuccess(valueList, syncResults);
}
}
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonObjectRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractJsonObjectRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,12 +15,11 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.requestfactory.shared.RecordRequest;
import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p> <span style="color:red">Experimental API: This class is still under
rapid
@@ -44,14 +43,15 @@
this.schema = schema;
}
- public void handleResult(Object jsoResult, JavaScriptObject sideEffects)
{
+ @Override
+ public void handleResult(Object jsoResult, Set<SyncResult> syncResults) {
RecordJsoImpl jso = (RecordJsoImpl) jsoResult;
jso.setSchema(schema);
requestFactory.getValueStore().setRecord(jso, requestFactory);
- receiver.onSuccess(schema.create(jso),
Collections.<SyncResult>emptySet());
+ receiver.onSuccess(schema.create(jso), syncResults);
}
}
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractLongRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractLongRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(Long.valueOf(responseText),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(Long.valueOf(responseText), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractPrimitiveRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractPrimitiveRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,7 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.valuestore.shared.SyncResult;
+
+import java.util.Set;
/**
* <p>
@@ -36,10 +38,11 @@
super(requestFactory);
}
- public void handleResult(Object result, JavaScriptObject sideEffects) {
- handlePrimitiveResult(asString(result), sideEffects);
+ @Override
+ public void handleResult(Object result, Set<SyncResult> syncResults) {
+ handlePrimitiveResult(asString(result), syncResults);
}
protected abstract void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects);
-}
+ Set<SyncResult> syncResults);
+}
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractRequest.java
Thu Aug 19 13:24:10 2010
@@ -20,6 +20,7 @@
import com.google.gwt.requestfactory.shared.RequestObject;
import com.google.gwt.valuestore.shared.Property;
import com.google.gwt.valuestore.shared.Record;
+import com.google.gwt.valuestore.shared.SyncResult;
import java.util.Collection;
import java.util.Collections;
@@ -95,9 +96,10 @@
}
public void handleResponseText(String responseText) {
- RecordJsoImpl.JsonResults results =
RecordJsoImpl.fromResults(responseText);
+ RecordJsoImpl.JsonResults results =
RecordJsoImpl.fromResults(responseText);
processRelated(results.getRelated());
- handleResult(results.getResult(), results.getSideEffects());
+ handleResult(results.getResult(),
+ deltaValueStore.commit(results.getSideEffects()));
}
public boolean isChanged() {
@@ -128,7 +130,7 @@
protected abstract R getThis();
protected abstract void handleResult(Object result,
- JavaScriptObject sideEffects);
+ Set<SyncResult> syncResults);
protected native void processRelated(JavaScriptObject related) /*-{
for(var recordKey in related) {
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractShortRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractShortRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(Short.valueOf(responseText),
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(Short.valueOf(responseText), syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractStringRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractStringRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,10 +15,9 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
-import java.util.Collections;
+import java.util.Set;
/**
* <p>
@@ -37,10 +36,10 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- receiver.onSuccess(responseText,
- Collections.<SyncResult> emptySet());
+ Set<SyncResult> syncResults) {
+ receiver.onSuccess(responseText, syncResults);
}
@Override
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractVoidRequest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/AbstractVoidRequest.java
Thu Aug 19 13:24:10 2010
@@ -15,7 +15,6 @@
*/
package com.google.gwt.requestfactory.client.impl;
-import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.valuestore.shared.SyncResult;
import java.util.Set;
@@ -37,9 +36,9 @@
super(requestFactory);
}
+ @Override
public void handlePrimitiveResult(String responseText,
- JavaScriptObject sideEffects) {
- Set<SyncResult> syncResults = deltaValueStore.commit(sideEffects);
+ Set<SyncResult> syncResults) {
receiver.onSuccess(null, syncResults);
}
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
Thu Aug 19 13:24:10 2010
@@ -55,12 +55,6 @@
}
}-*/;
- private static native JavaScriptObject getJsoResponse(String response)
/*-{
- // TODO: clean and optimize this.
- eval("xyz=" + response);
- return xyz["sideEffects"];
- }-*/;
-
protected ReturnRecord() {
}
=======================================
---
/trunk/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/src/com/google/gwt/requestfactory/server/JsonRequestProcessor.java
Thu Aug 19 13:24:10 2010
@@ -697,16 +697,17 @@
JSONObject envelop = new JSONObject();
if (result instanceof List<?>) {
envelop.put(RequestData.RESULT_TOKEN, toJsonArray(operation,
result));
- envelop.put("sideEffects", sideEffects);
+ envelop.put(RequestData.SIDE_EFFECTS_TOKEN, sideEffects);
return envelop;
} else if (result instanceof Number || result instanceof Enum
|| result instanceof String || result instanceof Date
|| result instanceof Character || result instanceof Boolean) {
envelop.put(RequestData.RESULT_TOKEN, result);
+ envelop.put(RequestData.SIDE_EFFECTS_TOKEN, sideEffects);
} else {
JSONObject jsonObject = toJsonObject(operation, result);
envelop.put(RequestData.RESULT_TOKEN, jsonObject);
- envelop.put("sideEffects", sideEffects);
+ envelop.put(RequestData.SIDE_EFFECTS_TOKEN, sideEffects);
return envelop;
}
envelop.put(RequestData.RELATED_TOKEN, encodeRelatedObjectsToJson());
=======================================
--- /trunk/user/src/com/google/gwt/requestfactory/shared/RequestData.java
Wed Aug 18 08:38:13 2010
+++ /trunk/user/src/com/google/gwt/requestfactory/shared/RequestData.java
Thu Aug 19 13:24:10 2010
@@ -42,6 +42,8 @@
public static final String RELATED_TOKEN = "related";
+ public static final String SIDE_EFFECTS_TOKEN = "sideEffects";
+
// TODO: non-final is a hack for now.
private String operation;
private final Object[] parameters;
=======================================
---
/trunk/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
Wed Aug 18 19:31:21 2010
+++
/trunk/user/test/com/google/gwt/valuestore/client/RequestFactoryTest.java
Thu Aug 19 13:24:10 2010
@@ -20,6 +20,7 @@
import com.google.gwt.junit.client.GWTTestCase;
import com.google.gwt.requestfactory.shared.Receiver;
import com.google.gwt.requestfactory.shared.RequestObject;
+import com.google.gwt.valuestore.shared.Record;
import com.google.gwt.valuestore.shared.SimpleBarRecord;
import com.google.gwt.valuestore.shared.SimpleFooRecord;
import com.google.gwt.valuestore.shared.SimpleRequestFactory;
@@ -142,4 +143,48 @@
}
});
}
-}
+
+ /*
+ * tests that (a) any method can have a side effect that is handled
correctly. (b)
+ * instance methods are handled correctly.
+ */
+ public void testMethodWithSideEffects() {
+ final SimpleRequestFactory req =
GWT.create(SimpleRequestFactory.class);
+ HandlerManager hm = new HandlerManager(null);
+ req.init(hm);
+ delayTestFinish(5000);
+
+ req.simpleFooRequest().findSimpleFooById(999L).fire(
+ new Receiver<SimpleFooRecord>() {
+
+ public void onSuccess(SimpleFooRecord newFoo,
+ Set<SyncResult> syncResults) {
+ final RequestObject<Long> fooReq =
req.simpleFooRequest().countSimpleFooWithUserNameSideEffect(
+ newFoo);
+ newFoo = fooReq.edit(newFoo);
+ newFoo.setUserName("Ray");
+ fooReq.fire(new Receiver<Long>() {
+ public void onSuccess(Long response, Set<SyncResult>
syncResults) {
+ assertEquals(new Long(1L), response);
+ // confirm that there was a sideEffect.
+ assertEquals(1, syncResults.size());
+ SyncResult syncResultArray[] = syncResults.toArray(new
SyncResult[0]);
+ assertFalse(syncResultArray[0].hasViolations());
+ assertNull(syncResultArray[0].getFutureId());
+ Record record = syncResultArray[0].getRecord();
+ assertEquals(new Long(999L), record.getId());
+ // confirm that the instance method did have the desired
sideEffect.
+ req.simpleFooRequest().findSimpleFooById(999L).fire(
+ new Receiver<SimpleFooRecord>() {
+ public void onSuccess(SimpleFooRecord finalFoo,
+ Set<SyncResult> syncResults) {
+ assertEquals("Ray", finalFoo.getUserName());
+ finishTest();
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+}
=======================================
--- /trunk/user/test/com/google/gwt/valuestore/server/SimpleFoo.java Wed
Aug 18 19:31:21 2010
+++ /trunk/user/test/com/google/gwt/valuestore/server/SimpleFoo.java Thu
Aug 19 13:24:10 2010
@@ -51,6 +51,11 @@
public static SimpleFoo getSingleton() {
return singleton;
}
+
+ public Long countSimpleFooWithUserNameSideEffect() {
+ singleton.setUserName(userName);
+ return 1L;
+ }
public String hello(SimpleBar bar) {
return "Greetings " + bar.getUserName() + " from " + getUserName();
=======================================
--- /trunk/user/test/com/google/gwt/valuestore/shared/SimpleFooRequest.java
Wed Aug 18 19:31:21 2010
+++ /trunk/user/test/com/google/gwt/valuestore/shared/SimpleFooRequest.java
Thu Aug 19 13:24:10 2010
@@ -28,6 +28,9 @@
public interface SimpleFooRequest {
RequestObject<Long> countSimpleFoo();
+ @Instance
+ RequestObject<Long> countSimpleFooWithUserNameSideEffect(SimpleFooRecord
record);
+
RecordListRequest<SimpleFooRecord> findAll();
RecordRequest<SimpleFooRecord> findSimpleFooById(Long id);
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors