Package org.axonframework.serialization
Interface Serializer
- All Known Implementing Classes:
AbstractXStreamSerializer,AvroSerializer,GrpcMetaDataAwareSerializer,Jackson3Serializer,JacksonSerializer,JavaSerializer,XStreamSerializer
public interface Serializer
Interface describing a serialization mechanism. Implementations can serialize objects of given type
T to an
output stream and read the object back in from an input stream.- Since:
- 1.2
- Author:
- Allard Buijze
-
Method Summary
Modifier and TypeMethodDescription<T> booleancanSerializeTo(Class<T> expectedRepresentation) Indicates whether this Serializer is capable of serializing to the givenexpectedRepresentation.classForType(SerializedType type) Returns the class for the given type identifier.<S,T> T deserialize(SerializedObject<S> serializedObject) Deserializes the first object read from the givenbytes.Returns theConverterused by this Serializer to convert between serialized representations.<T> SerializedObject<T> Serialize the givenobjectinto a Serialized Object containing the givenexpectedRepresentation.typeForClass(Class type) Returns the type identifier for the given class.
-
Method Details
-
serialize
<T> SerializedObject<T> serialize(@Nullable Object object, @Nonnull 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
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
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
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 returns anUnknownSerializedTypeinstance which proides access to the raw underlying data.- Parameters:
type- The type identifier of the object- Returns:
- the Class representing the type of the serialized Object
-
typeForClass
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
-
getConverter
Converter getConverter()Returns theConverterused by this Serializer to convert between serialized representations. Generally, this Converter depends on the type of data the serializer serializes to.- Returns:
- the converter used by this Serializer
-