Class JAXBCoder<T>

Type Parameters:
T - type of JAXB annotated objects that will be serialized.
All Implemented Interfaces:
Serializable

public class JAXBCoder<T> extends CustomCoder<T>
A coder for JAXB annotated objects. This coder uses JAXB marshalling/unmarshalling mechanisms to encode/decode the objects. Users must provide the Class of the JAXB annotated object.
See Also:
  • Method Details

    • getJAXBClass

      public Class<T> getJAXBClass()
    • of

      public static <T> JAXBCoder<T> of(Class<T> jaxbClass)
      Create a coder for a given type of JAXB annotated objects.
      Parameters:
      jaxbClass - the Class of the JAXB annotated objects.
    • encode

      public void encode(T value, OutputStream outStream) throws IOException
      Description copied from class: Coder
      Encodes the given value of type T onto the given output stream. Multiple elements can be encoded next to each other on the output stream, each coder should encode information to know how many bytes to read when decoding. A common approach is to prefix the encoding with the element's encoded length.
      Specified by:
      encode in class Coder<T>
      Throws:
      IOException - if writing to the OutputStream fails for some reason
    • encode

      public void encode(T value, OutputStream outStream, Coder.Context context) throws IOException
      Description copied from class: Coder
      Encodes the given value of type T onto the given output stream in the given context.
      Overrides:
      encode in class Coder<T>
      Throws:
      IOException - if writing to the OutputStream fails for some reason
    • decode

      public T decode(InputStream inStream) throws IOException
      Description copied from class: Coder
      Decodes a value of type T from the given input stream in the given context. Returns the decoded value. Multiple elements can be encoded next to each other on the input stream, each coder should encode information to know how many bytes to read when decoding. A common approach is to prefix the encoding with the element's encoded length.
      Specified by:
      decode in class Coder<T>
      Throws:
      IOException - if reading from the InputStream fails for some reason
    • decode

      public T decode(InputStream inStream, Coder.Context context) throws IOException
      Description copied from class: Coder
      Decodes a value of type T from the given input stream in the given context. Returns the decoded value.
      Overrides:
      decode in class Coder<T>
      Throws:
      IOException - if reading from the InputStream fails for some reason
    • getEncodedTypeDescriptor

      public TypeDescriptor<T> getEncodedTypeDescriptor()
      Description copied from class: Coder
      Returns the TypeDescriptor for the type encoded.
      Overrides:
      getEncodedTypeDescriptor in class Coder<T>
    • equals

      public boolean equals(@Nullable Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object