org.apache.avro.generic

## Class GenericDatumWriter<D>

- java.lang.Object
- - org.apache.avro.generic.GenericDatumWriter<D>

- All Implemented Interfaces:
    DatumWriter<D>
  Direct Known Subclasses:
    ProtobufDatumWriter, SpecificDatumWriter, ThriftDatumWriter

      public class GenericDatumWriter<D>
      extends Object
      implements DatumWriter<D>

  `DatumWriter` for generic Java objects.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `GenericDatumWriter()`
    `protected` | `GenericDatumWriter(GenericData data)`
    `` | `GenericDatumWriter(Schema root)`
    `` | `GenericDatumWriter(Schema root, GenericData data)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected AvroTypeException` | `addAvroTypeMsg(AvroTypeException e, String s)` Helper method for adding a message to an Avro Type Exception .
    `protected ClassCastException` | `addClassCastMsg(ClassCastException e, String s)` Helper method for adding a message to an Class Cast Exception .
    `protected <T> Object` | `convert(Schema schema, LogicalType logicalType, Conversion<T> conversion, Object datum)` Convert a high level representation of a logical type (such as a BigDecimal) to its underlying representation object (such as a ByteBuffer).
    `protected Iterator<?>` | `getArrayElements(Object array)` Called by the default implementation of `writeArray(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to enumerate array elements.
    `protected long` | `getArraySize(Object array)` Called by the default implementation of `writeArray(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to get the size of an array.
    `GenericData` | `getData()` Return the `GenericData` implementation.
    `protected Iterable<Map.Entry<Object,Object>>` | `getMapEntries(Object map)` Called by the default implementation of `writeMap(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to enumerate map elements.
    `protected int` | `getMapSize(Object map)` Called by the default implementation of `writeMap(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to get the size of a map.
    `protected NullPointerException` | `npe(NullPointerException e, String s)` Helper method for adding a message to an NPE .
    `protected int` | `resolveUnion(Schema union, Object datum)` Called to find the index for a datum within a union.
    `void` | `setSchema(Schema root)` Set the schema.
    `void` | `write(D datum, Encoder out)` Write a datum.
    `protected void` | `write(Schema schema, Object datum, Encoder out)` Called to write data.
    `protected void` | `writeArray(Schema schema, Object datum, Encoder out)` Called to write a array.
    `protected void` | `writeBytes(Object datum, Encoder out)` Called to write a bytes.
    `protected void` | `writeEnum(Schema schema, Object datum, Encoder out)` Called to write an enum value.
    `protected void` | `writeField(Object datum, Schema.Field f, Encoder out, Object state)` Called to write a single field of a record.
    `protected void` | `writeFixed(Schema schema, Object datum, Encoder out)` Called to write a fixed value.
    `protected void` | `writeMap(Schema schema, Object datum, Encoder out)` Called to write a map.
    `protected void` | `writeRecord(Schema schema, Object datum, Encoder out)` Called to write a record.
    `protected void` | `writeString(Object datum, Encoder out)` Called to write a string.
    `protected void` | `writeString(Schema schema, Object datum, Encoder out)` Called to write a string.
    `protected void` | `writeWithoutConversion(Schema schema, Object datum, Encoder out)` Called to write data.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### GenericDatumWriter

          public GenericDatumWriter()

    - #### GenericDatumWriter

          protected GenericDatumWriter(GenericData data)

    - #### GenericDatumWriter

          public GenericDatumWriter(Schema root)

    - #### GenericDatumWriter

          public GenericDatumWriter(Schema root,
                                    GenericData data)

  - ### Method Detail

    - #### getData

          public GenericData getData()

      Return the `GenericData` implementation.

    - #### setSchema

          public void setSchema(Schema root)

      Description copied from interface: `DatumWriter`
      Set the schema.
      Specified by:
        `setSchema` in interface `DatumWriter<D>`

    - #### write

          public void write(D datum,
                            Encoder out)
                     throws IOException

      Description copied from interface: `DatumWriter`
      Write a datum. Traverse the schema, depth first, writing each leaf value in the schema from the datum to the output.
      Specified by:
        `write` in interface `DatumWriter<D>`
      Throws:
        `IOException`

    - #### write

          protected void write(Schema schema,
                               Object datum,
                               Encoder out)
                        throws IOException

      Called to write data.
      Throws:
        `IOException`

    - #### convert

          protected <T> Object convert(Schema schema,
                                       LogicalType logicalType,
                                       Conversion<T> conversion,
                                       Object datum)

      Convert a high level representation of a logical type (such as a BigDecimal) to its underlying representation object (such as a ByteBuffer).
      Throws:
        `IllegalArgumentException` - if a null schema or logicalType is passed in while datum and conversion are not null. Please be noticed that the exception type has changed. With version 1.8.0 and earlier, in above circumstance, the exception thrown out depends on the implementation of conversion (most likely a NullPointerException). Now, an IllegalArgumentException will be thrown out instead.

    - #### writeWithoutConversion

          protected void writeWithoutConversion(Schema schema,
                                                Object datum,
                                                Encoder out)
                                         throws IOException

      Called to write data.
      Throws:
        `IOException`

    - #### npe

          protected NullPointerException npe(NullPointerException e,
                                             String s)

      Helper method for adding a message to an NPE .

    - #### addClassCastMsg

          protected ClassCastException addClassCastMsg(ClassCastException e,
                                                       String s)

      Helper method for adding a message to an Class Cast Exception .

    - #### addAvroTypeMsg

          protected AvroTypeException addAvroTypeMsg(AvroTypeException e,
                                                     String s)

      Helper method for adding a message to an Avro Type Exception .

    - #### writeRecord

          protected void writeRecord(Schema schema,
                                     Object datum,
                                     Encoder out)
                              throws IOException

      Called to write a record. May be overridden for alternate record representations.
      Throws:
        `IOException`

    - #### writeField

          protected void writeField(Object datum,
                                    Schema.Field f,
                                    Encoder out,
                                    Object state)
                             throws IOException

      Called to write a single field of a record. May be overridden for more efficient or alternate implementations.
      Throws:
        `IOException`

    - #### writeEnum

          protected void writeEnum(Schema schema,
                                   Object datum,
                                   Encoder out)
                            throws IOException

      Called to write an enum value. May be overridden for alternate enum representations.
      Throws:
        `IOException`

    - #### writeArray

          protected void writeArray(Schema schema,
                                    Object datum,
                                    Encoder out)
                             throws IOException

      Called to write a array. May be overridden for alternate array representations.
      Throws:
        `IOException`

    - #### resolveUnion

          protected int resolveUnion(Schema union,
                                     Object datum)

      Called to find the index for a datum within a union. By default calls `GenericData.resolveUnion(Schema,Object)`.

    - #### getArraySize

          protected long getArraySize(Object array)

      Called by the default implementation of `writeArray(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to get the size of an array. The default implementation is for `Collection`.

    - #### getArrayElements

          protected Iterator<?> getArrayElements(Object array)

      Called by the default implementation of `writeArray(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to enumerate array elements. The default implementation is for `Collection`.

    - #### writeMap

          protected void writeMap(Schema schema,
                                  Object datum,
                                  Encoder out)
                           throws IOException

      Called to write a map. May be overridden for alternate map representations.
      Throws:
        `IOException`

    - #### getMapSize

          protected int getMapSize(Object map)

      Called by the default implementation of `writeMap(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to get the size of a map. The default implementation is for `Map`.

    - #### getMapEntries

          protected Iterable<Map.Entry<Object,Object>> getMapEntries(Object map)

      Called by the default implementation of `writeMap(org.apache.avro.Schema, java.lang.Object, org.apache.avro.io.Encoder)` to enumerate map elements. The default implementation is for `Map`.

    - #### writeString

          protected void writeString(Schema schema,
                                     Object datum,
                                     Encoder out)
                              throws IOException

      Called to write a string. May be overridden for alternate string representations.
      Throws:
        `IOException`

    - #### writeString

          protected void writeString(Object datum,
                                     Encoder out)
                              throws IOException

      Called to write a string. May be overridden for alternate string representations.
      Throws:
        `IOException`

    - #### writeBytes

          protected void writeBytes(Object datum,
                                    Encoder out)
                             throws IOException

      Called to write a bytes. May be overridden for alternate bytes representations.
      Throws:
        `IOException`

    - #### writeFixed

          protected void writeFixed(Schema schema,
                                    Object datum,
                                    Encoder out)
                             throws IOException

      Called to write a fixed value. May be overridden for alternate fixed representations.
      Throws:
        `IOException`

Copyright © 2009–2024 The Apache Software Foundation. All rights reserved.