Class MemcacheSerialization


  • public class MemcacheSerialization
    extends Object
    Static serialization helpers used by MemcacheServiceImpl This class is thread-safe.
    • Field Detail

      • USE_THREAD_CONTEXT_CLASSLOADER_PROPERTY

        public static final String USE_THREAD_CONTEXT_CLASSLOADER_PROPERTY
        See Also:
        Constant Field Values
    • Method Detail

      • deserialize

        public static Object deserialize​(byte[] value,
                                         int flags)
                                  throws ClassNotFoundException,
                                         IOException
        Deserialize the object, according to its flags. This would have private visibility, but is also used by LocalMemcacheService for the increment operation.
        Parameters:
        value -
        flags -
        Returns:
        the Object originally stored
        Throws:
        ClassNotFoundException - if the object can't be re-instantiated due to being an unlocatable type
        IOException - if the object can't be re-instantiated for some other reason
      • makePbKey

        public static byte[] makePbKey​(Object key)
                                throws IOException
        Converts the user's key Object into a byte[] for the MemcacheGetRequest. Because the underlying service has a length limit, we actually use the SHA1 hash of the serialized object as its key if it's not a basic type. For the basic types (that is, String, Boolean, and the fixed-point numbers), we use a human-readable representation.
        Parameters:
        key -
        Returns:
        hash result. For the key null, the hash is also null.
        Throws:
        IOException
      • serialize

        public static MemcacheSerialization.ValueAndFlags serialize​(Object value)
                                                             throws IOException
        Parameters:
        value -
        Returns:
        the ValueAndFlags containing a serialized representation of the Object and the flags to hint deserialization.
        Throws:
        IOException - for serialization errors, normally due to a non-serializable object type