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:
-
Method Summary
Modifier and TypeMethodDescription<T extends EntityProxy>
Tdeserialize
(EntityProxyId<T> id) Recreate aEntityProxy
instance that was previously passed toserialize(BaseProxy)
.<T extends BaseProxy>
Tdeserialize
(Class<T> proxyType, String key) Recreate a proxy instance that was previously passed toserialize(BaseProxy)
.Store a proxy into the backing store.
-
Method Details
-
deserialize
Recreate a proxy instance that was previously passed toserialize(BaseProxy)
.- Type Parameters:
T
- the type of proxy object to create- Parameters:
proxyType
- the type of proxy object to createkey
- a value previously returned fromserialize(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
-