org.axonframework.serializer
Class JavaSerializer

java.lang.Object
  extended by org.axonframework.serializer.JavaSerializer
All Implemented Interfaces:
Serializer

public class JavaSerializer
extends Object
implements Serializer

Serializer implementation that uses Java serialization to serialize and deserialize object instances. This implementation is very suitable if the life span of the serialized objects allows classes to remain unchanged. If Class definitions need to be changed during the object's life cycle, another implementation, like the XStreamSerializer might be a more suitable alternative.

Since:
2.0
Author:
Allard Buijze

Constructor Summary
JavaSerializer()
           
 
Method Summary
<T> boolean
canSerializeTo(Class<T> expectedRepresentation)
          Indicates whether this Serializer is capable of serializing to the given expectedRepresentation.
 Class 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 given bytes.
protected  String revisionOf(Class<?> type)
          Returns the revision for the given type.
<T> SerializedObject<T>
serialize(Object instance, Class<T> expectedType)
          Serialize the given object into a Serialized Object containing the given expectedRepresentation.
 SerializedType typeForClass(Class type)
          Returns the type identifier for the given class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaSerializer

public JavaSerializer()
Method Detail

serialize

public <T> SerializedObject<T> serialize(Object instance,
                                         Class<T> expectedType)
Description copied from interface: Serializer
Serialize the given object into a Serialized Object containing the given expectedRepresentation.

Use Serializer.canSerializeTo(Class) to detect whether the expectedRepresentation is supported by this serializer.

Specified by:
serialize in interface Serializer
Type Parameters:
T - The expected data type representing the serialized object
Parameters:
instance - The object to serialize
expectedType - The expected data type representing the serialized object
Returns:
the instance representing the serialized object.

canSerializeTo

public <T> boolean canSerializeTo(Class<T> expectedRepresentation)
Description copied from interface: Serializer
Indicates whether this Serializer is capable of serializing to the given expectedRepresentation.

When true, this does *not* guarantee that the serialization and (optional) conversion will also succeed when executed. For example, when a serializer produces a byte[] containing JSON, trying to convert to a Dom4J Document will fail, even though this serializer has a converter to convert byte[] to Dom4J instances.

Specified by:
canSerializeTo in interface Serializer
Type Parameters:
T - The type of data a Serialized Object should contain
Parameters:
expectedRepresentation - The type of data a Serialized Object should contain
Returns:
true if the expectedRepresentation is supported, otherwise false.

deserialize

public <S,T> T deserialize(SerializedObject<S> serializedObject)
Description copied from interface: Serializer
Deserializes the first object read from the given bytes. The bytes are not consumed from the array or modified in any way. The resulting object instance is cast to the expected type.

Specified by:
deserialize in interface Serializer
Type Parameters:
S - The data type of the serialized object
T - 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

classForType

public Class classForType(SerializedType type)
Description copied from interface: Serializer
Returns the class for the given type identifier. The result of this method must guarantee that the deserialized SerializedObject with the given type is 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.

Specified by:
classForType in interface Serializer
Parameters:
type - The type identifier of the object
Returns:
the Class representing the type of the serialized Object

typeForClass

public SerializedType typeForClass(Class type)
Description copied from interface: Serializer
Returns the type identifier for the given class. This is the type identifier of the Serialized object as returned by Serializer.serialize(Object, Class).

Specified by:
typeForClass in interface Serializer
Parameters:
type - Class representing the type of the serializable Object.
Returns:
The type identifier of the object

revisionOf

protected String revisionOf(Class<?> type)
Returns the revision for the given type. The default implementation checks for an @Revision annotation, and returns 0 if none was found. This method can be safely overridden by subclasses.

The revision is used by upcasters to decide whether they need to process a certain serialized event. Generally, the revision needs to be increased each time the structure of an event has been changed in an incompatible manner.

Parameters:
type - The type for which to return the revision
Returns:
the revision for the given type


Copyright © 2010-2012. All Rights Reserved.