Package org.infinispan.commons.marshall
Class AbstractMarshaller
- java.lang.Object
-
- org.infinispan.commons.marshall.AbstractMarshaller
-
- All Implemented Interfaces:
Marshaller
- Direct Known Subclasses:
AbstractJBossMarshaller
,IdentityMarshaller
,JavaSerializationMarshaller
,ProtoStreamMarshaller
,StringMarshaller
public abstract class AbstractMarshaller extends Object implements Marshaller
Abstract Marshaller implementation containing shared implementations.- Since:
- 4.1
- Author:
- Galder ZamarreƱo
-
-
Field Summary
Fields Modifier and Type Field Description protected MarshallableTypeHints
marshallableTypeHints
-
Constructor Summary
Constructors Constructor Description AbstractMarshaller()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description BufferSizePredictor
getBufferSizePredictor(Object o)
Returns a marshalled payload size predictor for a particular type.Object
objectFromByteBuffer(byte[] buf)
Unmarshalls an object from a byte array.Object
objectFromInputStream(InputStream inputStream)
This method implementsStreamingMarshaller.objectFromInputStream(java.io.InputStream)
, but its implementation has been moved here rather that keeping under a class that implements StreamingMarshaller in order to avoid code duplication.ByteBuffer
objectToBuffer(Object obj)
A method that returns an instance ofByteBuffer
, which allows direct access to the byte array with minimal array copyingprotected abstract ByteBuffer
objectToBuffer(Object o, int estimatedSize)
This is a convenience method for converting an object into aByteBuffer
which takes an estimated size as parameter.byte[]
objectToByteBuffer(Object o)
Marshalls an object to a byte array.byte[]
objectToByteBuffer(Object obj, int estimatedSize)
Marshalls an object to a byte array.-
Methods inherited from interface org.infinispan.commons.marshall.Marshaller
initialize, isMarshallable, mediaType, objectFromByteBuffer, start, stop
-
-
-
-
Field Detail
-
marshallableTypeHints
protected final MarshallableTypeHints marshallableTypeHints
-
-
Method Detail
-
getBufferSizePredictor
public BufferSizePredictor getBufferSizePredictor(Object o)
Description copied from interface:Marshaller
Returns a marshalled payload size predictor for a particular type. Accurate prediction of a type's serialized payload size helps avoid unnecessary copying and speeds up application performance.- Specified by:
getBufferSizePredictor
in interfaceMarshaller
- Parameters:
o
- Object for which serialized predictor will be returned- Returns:
- an instance of
BufferSizePredictor
-
objectToBuffer
protected abstract ByteBuffer objectToBuffer(Object o, int estimatedSize) throws IOException, InterruptedException
This is a convenience method for converting an object into aByteBuffer
which takes an estimated size as parameter. AByteBuffer
allows direct access to the byte array with minimal array copying- Parameters:
o
- object to marshallestimatedSize
- an estimate of how large the resulting byte array may be- Throws:
IOException
InterruptedException
-
objectToBuffer
public ByteBuffer objectToBuffer(Object obj) throws IOException, InterruptedException
Description copied from interface:Marshaller
A method that returns an instance ofByteBuffer
, which allows direct access to the byte array with minimal array copying- Specified by:
objectToBuffer
in interfaceMarshaller
- Parameters:
obj
- object to marshall- Throws:
IOException
- if marshalling cannot complete due to some I/O errorInterruptedException
- if the marshalling process was interrupted. Clients should take this as a sign that the marshaller is no longer available, maybe due to shutdown, and so no more marshalling should be attempted.
-
objectToByteBuffer
public byte[] objectToByteBuffer(Object o) throws IOException, InterruptedException
Description copied from interface:Marshaller
Marshalls an object to a byte array.- Specified by:
objectToByteBuffer
in interfaceMarshaller
- Parameters:
o
- object to convert to a byte array. Must not be null.- Returns:
- a byte array
- Throws:
IOException
- if marshalling cannot complete due to some I/O errorInterruptedException
- if the marshalling process was interrupted. Clients should take this as a sign that the marshaller is no longer available, maybe due to shutdown, and so no more marshalling should be attempted.
-
objectToByteBuffer
public byte[] objectToByteBuffer(Object obj, int estimatedSize) throws IOException, InterruptedException
Description copied from interface:Marshaller
Marshalls an object to a byte array. The estimatedSize parameter is a hint that can be passed in to allow for efficient sizing of the byte array before attempting to marshall the object. The more accurate this estimate is, the less likely byte[]s will need to be resized to hold the byte stream generated by marshalling the object.- Specified by:
objectToByteBuffer
in interfaceMarshaller
- Parameters:
obj
- object to convert to a byte array. Must not be null.estimatedSize
- an estimate of how large the resulting byte array may be- Returns:
- a byte array with the marshalled form of the object
- Throws:
IOException
- if marshalling cannot complete due to some I/O errorInterruptedException
- if the marshalling was interrupted. Clients should take this as a sign that the marshaller is no longer available, maybe due to shutdown, and so no more unmarshalling should be attempted.
-
objectFromByteBuffer
public Object objectFromByteBuffer(byte[] buf) throws IOException, ClassNotFoundException
Description copied from interface:Marshaller
Unmarshalls an object from a byte array.- Specified by:
objectFromByteBuffer
in interfaceMarshaller
- Parameters:
buf
- byte array containing the binary representation of an object. Must not be null.- Returns:
- an object
- Throws:
IOException
- if unmarshalling cannot complete due to some I/O errorClassNotFoundException
- if the class of the object trying to unmarshall is unknown
-
objectFromInputStream
public Object objectFromInputStream(InputStream inputStream) throws IOException, ClassNotFoundException
This method implementsStreamingMarshaller.objectFromInputStream(java.io.InputStream)
, but its implementation has been moved here rather that keeping under a class that implements StreamingMarshaller in order to avoid code duplication.- Throws:
IOException
ClassNotFoundException
-
-