Package org.infinispan.commons.marshall
Class AbstractMarshaller
java.lang.Object
org.infinispan.commons.marshall.AbstractMarshaller
- All Implemented Interfaces:
Marshaller
- Direct Known Subclasses:
AbstractJBossMarshaller
,IdentityMarshaller
,ImmutableProtoStreamMarshaller
,JavaSerializationMarshaller
,StringMarshaller
Abstract Marshaller implementation containing shared implementations.
- Since:
- 4.1
- Author:
- Galder ZamarreƱo
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns a marshalled payload size predictor for a particular type.objectFromByteBuffer
(byte[] buf) Unmarshalls an object from a byte array.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.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[]
Marshalls an object to a byte array.byte[]
objectToByteBuffer
(Object obj, int estimatedSize) Marshalls an object to a byte array.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.infinispan.commons.marshall.Marshaller
initialize, isMarshallable, mediaType, objectFromByteBuffer, start, stop
-
Field Details
-
marshallableTypeHints
-
-
Constructor Details
-
AbstractMarshaller
public AbstractMarshaller()
-
-
Method Details
-
getBufferSizePredictor
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
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
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
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
-