JAXBCoder (Google Cloud Dataflow SDK 1.9.1 API)

Google Cloud Dataflow SDK for Java, version 1.9.1


Class JAXBCoder<T>

  • Type Parameters:
    T - type of JAXB annotated objects that will be serialized.
    All Implemented Interfaces:
    Coder<T>, Serializable

    public class JAXBCoder<T>
    extends AtomicCoder<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:
    Serialized Form
    • Method Detail

      • 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.
        jaxbClass - the Class of the JAXB annotated objects.
      • getEncodingId

        public String getEncodingId()
        Description copied from interface: Coder
        An identifier for the binary format written by Coder.encode(T, java.io.OutputStream, com.google.cloud.dataflow.sdk.coders.Coder.Context).

        This value, along with the fully qualified class name, forms an identifier for the binary format of this coder. Whenever this value changes, the new encoding is considered incompatible with the prior format: It is presumed that the prior version of the coder will be unable to correctly read the new format and the new version of the coder will be unable to correctly read the old format.

        If the format is changed in a backwards-compatible way (the Coder can still accept data from the prior format), such as by adding optional fields to a Protocol Buffer or Avro definition, and you want Dataflow to understand that the new coder is compatible with the prior coder, this value must remain unchanged. It is then the responsibility of Coder.decode(java.io.InputStream, com.google.cloud.dataflow.sdk.coders.Coder.Context) to correctly read data from the prior format.

        Specified by:
        getEncodingId in interface Coder<T>
        getEncodingId in class StandardCoder<T>
      • of

        public static <T> JAXBCoder<T> of(String jaxbClassName)
        Constructor for JSON deserialization only.
      • asCloudObject

        public com.google.cloud.dataflow.sdk.util.CloudObject asCloudObject()
        Description copied from interface: Coder
        Returns the CloudObject that represents this Coder.
        Specified by:
        asCloudObject in interface Coder<T>
        asCloudObject in class StandardCoder<T>