Interface Serializer
-
- All Known Implementing Classes:
AbstractXStreamSerializer,FieldEncryptingSerializer,JacksonSerializer,JavaSerializer,XStreamSerializer
public interface SerializerInterface describing a serialization mechanism. Implementations can serialize objects of given typeTto an output stream and read the object back in from an input stream.- Since:
- 1.2
- Author:
- Allard Buijze
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T> booleancanSerializeTo(Class<T> expectedRepresentation)Indicates whether this Serializer is capable of serializing to the givenexpectedRepresentation.ClassclassForType(SerializedType type)Returns the class for the given type identifier.<S,T>
Tdeserialize(SerializedObject<S> serializedObject)Deserializes the first object read from the givenbytes.ConvertergetConverter()Returns theConverterused by this Serializer to convert between serialized representations.<T> SerializedObject<T>serialize(Object object, Class<T> expectedRepresentation)Serialize the givenobjectinto a Serialized Object containing the givenexpectedRepresentation.SerializedTypetypeForClass(Class type)Returns the type identifier for the given class.
-
-
-
Method Detail
-
serialize
<T> SerializedObject<T> serialize(Object object, Class<T> expectedRepresentation)
Serialize the givenobjectinto a Serialized Object containing the givenexpectedRepresentation. UsecanSerializeTo(Class)to detect whether theexpectedRepresentationis supported by this serializer.- Type Parameters:
T- The expected data type representing the serialized object- Parameters:
object- The object to serializeexpectedRepresentation- The expected data type representing the serialized object- Returns:
- the instance representing the serialized object.
-
canSerializeTo
<T> boolean canSerializeTo(Class<T> expectedRepresentation)
Indicates whether this Serializer is capable of serializing to the givenexpectedRepresentation. Whentrue, this does *not* guarantee that the serialization and (optional) conversion will also succeed when executed. For example, when a serializer produces abyte[]containing JSON, trying to convert to a Dom4J Document will fail, even though this serializer has a converter to convertbyte[]to Dom4J instances.- Type Parameters:
T- The type of data a Serialized Object should contain- Parameters:
expectedRepresentation- The type of data a Serialized Object should contain- Returns:
trueif theexpectedRepresentationis supported, otherwisefalse.
-
deserialize
<S,T> T deserialize(SerializedObject<S> serializedObject)
Deserializes the first object read from the givenbytes. Thebytesare not consumed from the array or modified in any way. The resulting object instance is cast to the expected type.- Type Parameters:
S- The data type of the serialized objectT- The expected deserialized type- Parameters:
serializedObject- the instance describing the type of object and the bytes providing the serialized data- Returns:
- the serialized object, cast to the expected type
- Throws:
ClassCastException- if the first object in the stream is not an instance of <T>.
-
classForType
Class classForType(SerializedType type) throws UnknownSerializedTypeException
Returns the class for the given type identifier. The result of this method must guarantee that the deserialized SerializedObject with the giventypeis an instance of the returned Class. If a class cannot be resolved (i.e. because the class is not available on this JVM's classpath) this method throws UnknownSerializedTypeException.- Parameters:
type- The type identifier of the object- Returns:
- the Class representing the type of the serialized Object
- Throws:
UnknownSerializedTypeException- if thetypecannot be resolved to a class
-
typeForClass
SerializedType typeForClass(Class type)
Returns the type identifier for the given class. This is the type identifier of the Serialized object as returned byserialize(Object, Class).- Parameters:
type- Class representing the type of the serializable Object.- Returns:
- The type identifier of the object
-
-