Class BaseProtoStreamMarshaller

  • All Implemented Interfaces:
    org.infinispan.commons.marshall.Marshaller
    Direct Known Subclasses:
    CompatibilityProtoStreamMarshaller, ProtoStreamMarshaller

    public abstract class BaseProtoStreamMarshaller
    extends org.infinispan.commons.marshall.AbstractMarshaller
    Provides the starting point for implementing a Marshaller that uses Protobuf encoding. Subclasses must implement just a single getSerializationContext() lookup method.
    Since:
    6.0
    Author:
    anistor@redhat.com
    • Field Summary

      • Fields inherited from class org.infinispan.commons.marshall.AbstractMarshaller

        marshallableTypeHints
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract org.infinispan.protostream.SerializationContext getSerializationContext()
      Subclasses must implement this method in order to provide a way to lookup the SerializationContext
      boolean isMarshallable​(Object o)
      A method that checks whether the given object is marshallable as per the rules of this marshaller.
      org.infinispan.commons.dataconversion.MediaType mediaType()  
      Object objectFromByteBuffer​(byte[] buf, int offset, int length)
      Unmarshalls an object from a specific portion of a byte array.
      protected org.infinispan.commons.io.ByteBuffer objectToBuffer​(Object o, int estimatedSize)
      This is a convenience method for converting an object into a ByteBuffer which takes an estimated size as parameter.
      • Methods inherited from class org.infinispan.commons.marshall.AbstractMarshaller

        getBufferSizePredictor, objectFromByteBuffer, objectFromInputStream, objectToBuffer, objectToByteBuffer, objectToByteBuffer
    • Constructor Detail

      • BaseProtoStreamMarshaller

        protected BaseProtoStreamMarshaller()
    • Method Detail

      • getSerializationContext

        protected abstract org.infinispan.protostream.SerializationContext getSerializationContext()
        Subclasses must implement this method in order to provide a way to lookup the SerializationContext
        Returns:
        the SerializationContext instance to use
      • objectFromByteBuffer

        public Object objectFromByteBuffer​(byte[] buf,
                                           int offset,
                                           int length)
                                    throws IOException,
                                           ClassNotFoundException
        Description copied from interface: org.infinispan.commons.marshall.Marshaller
        Unmarshalls an object from a specific portion of a byte array.
        Parameters:
        buf - byte array containing the binary representation of an object. Must not be null.
        offset - point in buffer to start reading
        length - number of bytes to consider
        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
      • isMarshallable

        public boolean isMarshallable​(Object o)
        Description copied from interface: org.infinispan.commons.marshall.Marshaller
        A method that checks whether the given object is marshallable as per the rules of this marshaller.
        Parameters:
        o - object to verify whether it's marshallable or not
        Returns:
        true if the object is marshallable, otherwise false
      • objectToBuffer

        protected org.infinispan.commons.io.ByteBuffer objectToBuffer​(Object o,
                                                                      int estimatedSize)
                                                               throws IOException,
                                                                      InterruptedException
        Description copied from class: org.infinispan.commons.marshall.AbstractMarshaller
        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
        Specified by:
        objectToBuffer in class org.infinispan.commons.marshall.AbstractMarshaller
        Parameters:
        o - object to marshall
        estimatedSize - an estimate of how large the resulting byte array may be
        Throws:
        IOException
        InterruptedException
      • mediaType

        public org.infinispan.commons.dataconversion.MediaType mediaType()
        Returns:
        the MediaType associated with the content produced by the marshaller