public interface

ProxySerializer

com.google.gwt.requestfactory.shared.ProxySerializer

Class Overview

Serializes graphs of EntityProxy objects. A ProxySerializer is associated with an instance of a ProxyStore when it is created via getSerializer(ProxyStore).

The stableId() of non-persisted (i.e. newly created) EntityProxy instances are not stable.

To create a self-contained message that encapsulates a proxy:

 RequestFactory myFactory = ...;
 MyFooProxy someProxy = ...;
 
 DefaultProxyStore store = new DefaultProxyStore();
 ProxySerializer ser = myFactory.getSerializer(store);
 // More than one proxy could be serialized
 String key = ser.serialize(someProxy);
 // Create the flattened representation
 String payload = store.encode();
 
To recreate the object:
 ProxyStore store = new DefaultProxyStore(payload);
 ProxySerializer ser = myFactory.getSerializer(store);
 MyFooProxy someProxy = ser.deserialize(MyFooProxy.class, key);
 
If two objects refer to different EntityProxy instances that have the same stableId(), the last mutable proxy encountered will be preferred, otherwise the first immutable proxy will be used.

Summary

Public Methods
abstract <T extends BaseProxy> T deserialize(Class<T> proxyType, String key)
Recreate a proxy instance that was previously passed to serialize(BaseProxy).
abstract <T extends EntityProxy> T deserialize(EntityProxyId<T> id)
Recreate a EntityProxy instance that was previously passed to serialize(BaseProxy).
abstract String serialize(BaseProxy proxy)
Store a proxy into the backing store.

Public Methods

public abstract T deserialize (Class<T> proxyType, String key)

Recreate a proxy instance that was previously passed to serialize(BaseProxy).

Parameters
proxyType the type of proxy object to create
key a value previously returned from serialize(BaseProxy)
Returns
  • a new, immutable instance of the proxy or null if the data needed to deserialize the proxy is not present in the ProxyStore

public abstract T deserialize (EntityProxyId<T> id)

Recreate a EntityProxy instance that was previously passed to serialize(BaseProxy).

Parameters
id the EntityProxyId of the desired entity
Returns
  • a new, immutable instance of the proxy or null if the data needed to deserialize the proxy is not present in the ProxyStore

public abstract String serialize (BaseProxy proxy)

Store a proxy into the backing store.

Parameters
proxy the proxy to store
Returns