public class MessageSerializer extends Object implements Serializer
SerializationAware
support. This class can either be used as a
wrapper around a Serializer, or as a static utility class.
The serializePayload
and serializeMetaData
methods on this class are aware of
SerializationAware messages. When a Message implements that interface, serialization is delegated to that message to
allow performance optimizations.
Using this class to serialize the payload and meta-data of Message is preferred over the serialization using the
Serializer
class.Constructor and Description |
---|
MessageSerializer(Serializer serializer)
Initializes the MessageSerializer as a wrapper around the given serializer.
|
Modifier and Type | Method and Description |
---|---|
<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 . |
Converter |
getConverter()
Returns the
Converter used by this Serializer to convert between serialized representations. |
<T> SerializedObject<T> |
serialize(Object object,
Class<T> expectedRepresentation)
Serialize the given
object into a Serialized Object containing the given
expectedRepresentation . |
<T> SerializedObject<T> |
serializeMetaData(Message<?> message,
Class<T> expectedRepresentation)
Serialize the meta data of given
message to the given expectedRepresentation . |
static <T> SerializedObject<T> |
serializeMetaData(Message<?> message,
Serializer serializer,
Class<T> expectedRepresentation)
Utility method that serializes the meta data of the given
message using given
serializer and expectedRepresentation . |
<T> SerializedObject<T> |
serializePayload(Message<?> message,
Class<T> expectedRepresentation)
Serialize the payload of given
message to the given expectedRepresentation . |
static <T> SerializedObject<T> |
serializePayload(Message<?> message,
Serializer serializer,
Class<T> expectedRepresentation)
Utility method that serializes the payload of the given
message using given serializer
and expectedRepresentation . |
SerializedType |
typeForClass(Class type)
Returns the type identifier for the given class.
|
public MessageSerializer(Serializer serializer)
serializer
- the serializer to serialize and deserialize objects withpublic static <T> SerializedObject<T> serializePayload(Message<?> message, Serializer serializer, Class<T> expectedRepresentation)
message
using given serializer
and expectedRepresentation
. This method will verify if the eventMessage
is SerializationAware
.T
- The data type to serialize tomessage
- The message containing the payload to serializeserializer
- The serializer to serialize the payload withexpectedRepresentation
- The data type to serialize topublic static <T> SerializedObject<T> serializeMetaData(Message<?> message, Serializer serializer, Class<T> expectedRepresentation)
message
using given
serializer
and expectedRepresentation
. This method will verify if the
eventMessage
is SerializationAware
.T
- The data type to serialize tomessage
- The message containing the meta data to serializeserializer
- The serializer to serialize the meta data withexpectedRepresentation
- The data type to serialize topublic <T> SerializedObject<T> serializePayload(Message<?> message, Class<T> expectedRepresentation)
message
to the given expectedRepresentation
.T
- The representation of the serialized datamessage
- The message containing the payload to serializeexpectedRepresentation
- The representation of the serialized datapublic <T> SerializedObject<T> serializeMetaData(Message<?> message, Class<T> expectedRepresentation)
message
to the given expectedRepresentation
.T
- The representation of the serialized datamessage
- The message containing the meta data to serializeexpectedRepresentation
- The representation of the serialized datapublic <T> SerializedObject<T> serialize(Object object, Class<T> expectedRepresentation)
Serializer
object
into a Serialized Object containing the given
expectedRepresentation
.
Use Serializer.canSerializeTo(Class)
to detect whether the expectedRepresentation
is supported by
this serializer.serialize
in interface Serializer
T
- The expected data type representing the serialized objectobject
- The object to serializeexpectedRepresentation
- The expected data type representing the serialized objectpublic <T> boolean canSerializeTo(Class<T> expectedRepresentation)
Serializer
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.canSerializeTo
in interface Serializer
T
- The type of data a Serialized Object should containexpectedRepresentation
- The type of data a Serialized Object should containtrue
if the expectedRepresentation
is supported, otherwise false
.public <S,T> T deserialize(SerializedObject<S> serializedObject)
Serializer
bytes
. The bytes
are not consumed
from the array or modified in any way. The resulting object instance is cast to the expected type.deserialize
in interface Serializer
S
- The data type of the serialized objectT
- The expected deserialized typeserializedObject
- the instance describing the type of object and the bytes providing the serialized datapublic Class classForType(SerializedType type)
Serializer
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.classForType
in interface Serializer
type
- The type identifier of the objectpublic SerializedType typeForClass(Class type)
Serializer
Serializer.serialize(Object, Class)
.typeForClass
in interface Serializer
type
- Class representing the type of the serializable Object.public Converter getConverter()
Serializer
Converter
used by this Serializer to convert between serialized representations. Generally,
this Converter depends on the type of data the serializer serializes to.getConverter
in interface Serializer
Copyright © 2010–2018. All rights reserved.