Overview | Package | Class | Use | Deprecated | Help
| GWT 2.7.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.google.web.bindery.requestfactory.shared
Interface ProxySerializer

    public interface ProxySerializer

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

The `EntityProxy.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.

See Also:
  `DefaultProxyStore`

Method Summary
`
`<T extends BaseProxy> T`
` | `deserialize(java.lang.Class<T> proxyType, java.lang.String key)` Recreate a proxy instance that was previously passed to `serialize(BaseProxy)`.
`
`<T extends EntityProxy> T`
` | `deserialize(EntityProxyId<T> id)` Recreate a `EntityProxy` instance that was previously passed to `serialize(BaseProxy)`.
`java.lang.String` | `serialize(BaseProxy proxy)` Store a proxy into the backing store.

Method Detail

### deserialize

    <T extends BaseProxy> T deserialize(java.lang.Class<T> proxyType,
                                        java.lang.String key)

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

  Type Parameters:
    `T` - the type of proxy object to create
  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

### deserialize

    <T extends EntityProxy> T deserialize(EntityProxyId<T> id)

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

  Type Parameters:
    `T` - the type of proxy object to create
  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

### serialize

    java.lang.String serialize(BaseProxy proxy)

  Store a proxy into the backing store.

  Parameters:
    `proxy` - the proxy to store
  Returns:
    a key value that can be passed to `deserialize(Class, String)`

Overview | Package | Class | Use | Deprecated | Help
| GWT 2.7.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD