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 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)