T
- the type of the instances to serializepublic interface Serializer<T>
Implementations must be thread-safe.
When used within the default serialization provider, there is an additional requirement.
The implementations must define a constructor that takes in a ClassLoader
.
The ClassLoader
value may be null
. If not null
, the class loader
instance provided should be used during deserialization to load classes needed by the deserialized objects.
The serialized object's class must be preserved; deserialization of the serial form of an object must return an object of the same class. The following contract must always be true:
object.getClass().equals( mySerializer.read(mySerializer.serialize(object)).getClass())
SerializationProvider
Modifier and Type | Method and Description |
---|---|
boolean |
equals(T object,
java.nio.ByteBuffer binary)
Checks if the given instance and serial form
represent the same instance. |
T |
read(java.nio.ByteBuffer binary)
Reconstructs an instance from the given serial form.
|
java.nio.ByteBuffer |
serialize(T object)
Transforms the given instance into its serial form.
|
java.nio.ByteBuffer serialize(T object) throws SerializerException
object
- the instance to serializeSerializerException
- if serialization failsT read(java.nio.ByteBuffer binary) throws java.lang.ClassNotFoundException, SerializerException
binary
- the binary representation of the serial formSerializerException
- if reading the byte buffer failsjava.lang.ClassNotFoundException
- if the type to de-serialize to cannot be foundboolean equals(T object, java.nio.ByteBuffer binary) throws java.lang.ClassNotFoundException, SerializerException
represent
the same instance.object
- the instance to checkbinary
- the serial form to checktrue
if both parameters represent equal instances, false
otherwiseSerializerException
- if reading the byte buffer failsjava.lang.ClassNotFoundException
- if the type to de-serialize to cannot be found