Class SerializerHelper


  • public class SerializerHelper
    extends java.lang.Object
    The SerializeHelper is used to make implementing custom serialization handlers easier. Handlers for certain object types need to be added to this helper before this implementation is usable.
    Author:
    Thomas Morgner
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected SerializerHelper()
      Creates a new SerializerHelper.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected ClassComparator getComparator()
      Returns the class comparator instance used to find correct super classes.
      static SerializerHelper getInstance()
      Returns or creates a new SerializerHelper.
      protected java.util.HashMap getMethods()
      Returns the collection of all registered serialize methods.
      protected SerializeMethod getSerializer​(java.lang.Class c)
      Looks up the SerializeMethod for the given class or null if there is no SerializeMethod for the given class.
      protected SerializeMethod getSuperClassObjectDescription​(java.lang.Class d)
      Looks up the SerializeMethod for the given class or null if there is no SerializeMethod for the given class.
      java.lang.Object readObject​(java.io.ObjectInputStream in)
      Reads the object from the object input stream.
      void registerMethod​(SerializeMethod method)
      Registers a new SerializeMethod with this SerializerHelper.
      protected void registerMethods()
      Traverses the configuration and registers all serialization handlers in this factory.
      protected static void setInstance​(SerializerHelper helper)
      This method can be used to replace the singleton instance of this helper.
      void unregisterMethod​(SerializeMethod method)
      Deregisters a new SerializeMethod with this SerializerHelper.
      void writeObject​(java.lang.Object o, java.io.ObjectOutputStream out)
      Writes a serializable object description to the given object output stream.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SerializerHelper

        protected SerializerHelper()
        Creates a new SerializerHelper.
    • Method Detail

      • getInstance

        public static SerializerHelper getInstance()
        Returns or creates a new SerializerHelper. When a new instance is created by this method, all known SerializeMethods are registered.
        Returns:
        the SerializerHelper singleton instance.
      • setInstance

        protected static void setInstance​(SerializerHelper helper)
        This method can be used to replace the singleton instance of this helper.
        Parameters:
        helper - the new instance of the serialize helper.
      • registerMethod

        public void registerMethod​(SerializeMethod method)
        Registers a new SerializeMethod with this SerializerHelper.
        Parameters:
        method - the method that should be registered.
      • registerMethods

        protected void registerMethods()
        Traverses the configuration and registers all serialization handlers in this factory.
      • unregisterMethod

        public void unregisterMethod​(SerializeMethod method)
        Deregisters a new SerializeMethod with this SerializerHelper.
        Parameters:
        method - the method that should be deregistered.
      • getMethods

        protected java.util.HashMap getMethods()
        Returns the collection of all registered serialize methods.
        Returns:
        a collection of the registered serialize methods.
      • getComparator

        protected ClassComparator getComparator()
        Returns the class comparator instance used to find correct super classes.
        Returns:
        the class comparator.
      • getSerializer

        protected SerializeMethod getSerializer​(java.lang.Class c)
        Looks up the SerializeMethod for the given class or null if there is no SerializeMethod for the given class.
        Parameters:
        c - the class for which we want to lookup a serialize method.
        Returns:
        the method or null, if there is no registered method for the class.
      • getSuperClassObjectDescription

        protected SerializeMethod getSuperClassObjectDescription​(java.lang.Class d)
        Looks up the SerializeMethod for the given class or null if there is no SerializeMethod for the given class. This method searches all superclasses.
        Parameters:
        d - the class for which we want to lookup a serialize method.
        Returns:
        the method or null, if there is no registered method for the class.
      • writeObject

        public void writeObject​(java.lang.Object o,
                                java.io.ObjectOutputStream out)
                         throws java.io.IOException
        Writes a serializable object description to the given object output stream. This method selects the best serialize helper method for the given object.
        Parameters:
        o - the to be serialized object.
        out - the outputstream that should receive the object.
        Throws:
        java.io.IOException - if an I/O error occured.
      • readObject

        public java.lang.Object readObject​(java.io.ObjectInputStream in)
                                    throws java.io.IOException,
                                           java.lang.ClassNotFoundException
        Reads the object from the object input stream. This object selects the best serializer to read the object.

        Make sure, that you use the same configuration (library and class versions, registered methods in the SerializerHelper) for reading as you used for writing.

        Parameters:
        in - the object input stream from where to read the serialized data.
        Returns:
        the generated object.
        Throws:
        java.io.IOException - if reading the stream failed.
        java.lang.ClassNotFoundException - if serialized object class cannot be found.