Class AbstractMarshaller

java.lang.Object
org.infinispan.commons.marshall.AbstractMarshaller
All Implemented Interfaces:
Marshaller
Direct Known Subclasses:
AbstractJBossMarshaller, IdentityMarshaller, ImmutableProtoStreamMarshaller, JavaSerializationMarshaller, StringMarshaller

public abstract class AbstractMarshaller extends Object implements Marshaller
Abstract Marshaller implementation containing shared implementations.
Since:
4.1
Author:
Galder ZamarreƱo
  • Field Details

  • Constructor Details

    • AbstractMarshaller

      public AbstractMarshaller()
  • Method Details

    • 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 interface Marshaller
      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 a ByteBuffer which takes an estimated size as parameter. A ByteBuffer allows direct access to the byte array with minimal array copying
      Parameters:
      o - object to marshall
      estimatedSize - 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 of ByteBuffer, which allows direct access to the byte array with minimal array copying
      Specified by:
      objectToBuffer in interface Marshaller
      Parameters:
      obj - object to marshall
      Throws:
      IOException - if marshalling cannot complete due to some I/O error
      InterruptedException - 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 interface Marshaller
      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 error
      InterruptedException - 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 interface Marshaller
      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 error
      InterruptedException - 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 interface Marshaller
      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 error
      ClassNotFoundException - if the class of the object trying to unmarshall is unknown
    • objectFromInputStream

      public Object objectFromInputStream(InputStream inputStream) throws IOException, ClassNotFoundException
      This method implements StreamingMarshaller.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