Package org.jboss.marshalling
Class ChainingObjectTable
java.lang.Object
org.jboss.marshalling.ChainingObjectTable
- All Implemented Interfaces:
ObjectTable
An object table that multiplexes up to 256 class tables. The protocol works by prepending the custom object table
with an identifier byte.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.jboss.marshalling.ObjectTable
ObjectTable.Writer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ObjectTable[]
private final List<Pair<ObjectTable,
ObjectTable.Writer>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetObjectWriter
(Object obj) Determine whether the given object reference is a valid predefined reference.private static Pair<ObjectTable,
ObjectTable.Writer> pair
(ObjectTable objectTable, ObjectTable.Writer writer) readObject
(Unmarshaller unmarshaller) Read an instance from the stream.
-
Field Details
-
writers
-
readers
-
-
Constructor Details
-
ChainingObjectTable
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 Details
-
pair
private static Pair<ObjectTable,ObjectTable.Writer> pair(ObjectTable objectTable, ObjectTable.Writer writer) -
getObjectWriter
Determine whether the given object reference is a valid predefined reference.- Specified by:
getObjectWriter
in interfaceObjectTable
- Parameters:
obj
- the candidate object- Returns:
- the object writer, or
null
to use the default mechanism - Throws:
IOException
- if an I/O error occurs
-
readObject
Read an instance from the stream. The instance will have been written by theObjectTable.getObjectWriter(Object)
method'sWriter
instance, as defined above.- Specified by:
readObject
in interfaceObjectTable
- Parameters:
unmarshaller
- the unmarshaller to read from- Returns:
- the object instance
- Throws:
IOException
- if an I/O error occursClassNotFoundException
- if a class could not be found
-