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
Fields -
Constructor Summary
Constructors -
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 ByteBufferobjectToBuffer(Object o, int estimatedSize) This is a convenience method for converting an object into aByteBufferwhich 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, waitMethods 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:MarshallerReturns 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:
getBufferSizePredictorin 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 aByteBufferwhich takes an estimated size as parameter. AByteBufferallows 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:
IOExceptionInterruptedException
-
objectToBuffer
Description copied from interface:MarshallerA method that returns an instance ofByteBuffer, which allows direct access to the byte array with minimal array copying- Specified by:
objectToBufferin 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:MarshallerMarshalls an object to a byte array.- Specified by:
objectToByteBufferin 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:MarshallerMarshalls 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:
objectToByteBufferin 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:MarshallerUnmarshalls an object from a byte array.- Specified by:
objectFromByteBufferin 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:
IOExceptionClassNotFoundException
-