Class ChainingObjectTable

  • All Implemented Interfaces:
    ObjectTable

    public class ChainingObjectTable
    extends java.lang.Object
    implements ObjectTable
    An object table that multiplexes up to 256 class tables. The protocol works by prepending the custom object table with an identifier byte.
    • Constructor Detail

      • ChainingObjectTable

        public ChainingObjectTable​(ObjectTable[] objectTables)
        Construct a new instance. The given array may be sparse, but it may not be more than 256 elements in length. Object tables are checked in order of increasing array index.
        Parameters:
        objectTables - the object tables to delegate to
    • Method Detail

      • getObjectWriter

        public ObjectTable.Writer getObjectWriter​(java.lang.Object obj)
                                           throws java.io.IOException
        Determine whether the given object reference is a valid predefined reference.
        Specified by:
        getObjectWriter in interface ObjectTable
        Parameters:
        obj - the candidate object
        Returns:
        the object writer, or null to use the default mechanism
        Throws:
        java.io.IOException - if an I/O error occurs
      • readObject

        public java.lang.Object readObject​(Unmarshaller unmarshaller)
                                    throws java.io.IOException,
                                           java.lang.ClassNotFoundException
        Read an instance from the stream. The instance will have been written by the ObjectTable.getObjectWriter(Object) method's Writer instance, as defined above.
        Specified by:
        readObject in interface ObjectTable
        Parameters:
        unmarshaller - the unmarshaller to read from
        Returns:
        the object instance
        Throws:
        java.io.IOException - if an I/O error occurs
        java.lang.ClassNotFoundException - if a class could not be found