Interface StreamAwareMarshaller


@ThreadSafe public interface StreamAwareMarshaller
A minimal interface that facilitates the marshalling/unmarshalling of objects from the provided InputStream/OutputStream. Unlike the deprecated StreamingMarshaller this interface does not rely on the use of ObjectInput and ObjectOutput to read/write objects, which provides greater flexibility when marshalling objects to streams using third party libraries.
Since:
10.0
Author:
Ryan Emerson
  • Method Details

    • writeObject

      void writeObject(Object o, OutputStream out) throws IOException
      Marshall an object to the OutputStream
      Parameters:
      o - the object to write to the OutputStream
      out - the OutputStream to write the object to
      Throws:
      IOException - if the object cannot be marshalled to the OutputStream due to some I/O error
    • readObject

      Unmarshall an object from the InputStream
      Parameters:
      in - the InputStream to unmarshall an object from
      Returns:
      the unmarshalled object instance
      Throws:
      IOException - if unmarshalling cannot complete due to some I/O error
      ClassNotFoundException - if the class of the object trying to unmarshall is not found
    • isMarshallable

      boolean isMarshallable(Object o)
      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
    • sizeEstimate

      int sizeEstimate(Object o)
      An method that provides an estimate of the buffer size that will be required once the object has been marshalled.
      Parameters:
      o - instance that will be stored in the buffer.
      Returns:
      int representing the next predicted buffer size.
    • mediaType

      MediaType mediaType()
      Returns:
      the MediaType associated with the content produced by the marshaller