org.apache.flume.serialization

## Class AbstractAvroEventSerializer<T>

- java.lang.Object
- - org.apache.flume.serialization.AbstractAvroEventSerializer<T>

- Type Parameters:
    `T` - Data type that can be written in the Schema given below.
  All Implemented Interfaces:
    Configurable, EventSerializer
  Direct Known Subclasses:
    FlumeEventAvroEventSerializer

      public abstract class AbstractAvroEventSerializer<T>
      extends Object
      implements EventSerializer, Configurable

  This is a helper class provided to make it straightforward to serialize Flume events into Avro data.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.flume.serialization.EventSerializer

      `EventSerializer.Builder`

  - ### Field Summary

    - ### Fields inherited from interface org.apache.flume.serialization.EventSerializer

      `CTX_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractAvroEventSerializer()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterCreate()` Hook to write a header after file is opened for the first time.
    `void` | `afterReopen()` Hook to handle any framing needed when file is re-opened (for write). Could have been named `afterOpenForAppend()`.
    `void` | `beforeClose()` Hook to write a trailer before the stream is closed.
    `void` | `configure(Context context)` Request the implementing class to (re)configure itself.
    `protected abstract T` | `convert(Event event)` Simple conversion routine used to convert an Event to a type of your choosing.
    `void` | `flush()` Hook to flush any internal write buffers to the underlying stream.
    `protected abstract OutputStream` | `getOutputStream()` Returns the stream to serialize data into.
    `protected abstract org.apache.avro.Schema` | `getSchema()` Returns the parsed Avro schema corresponding to the data being written and the parameterized type specified.
    `boolean` | `supportsReopen()` Specify whether this output format supports reopening files for append.
    `void` | `write(Event event)` Serialize and write the given event.

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

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

- - ### Constructor Detail

    - #### AbstractAvroEventSerializer

          public AbstractAvroEventSerializer()

  - ### Method Detail

    - #### getOutputStream

          protected abstract OutputStream getOutputStream()

      Returns the stream to serialize data into.

    - #### getSchema

          protected abstract org.apache.avro.Schema getSchema()

      Returns the parsed Avro schema corresponding to the data being written and the parameterized type specified.

    - #### convert

          protected abstract T convert(Event event)

      Simple conversion routine used to convert an Event to a type of your choosing. That type must correspond to the Avro schema given by `getSchema()`.

    - #### configure

          public void configure(Context context)

      Description copied from interface: `Configurable`

      Request the implementing class to (re)configure itself.

      When configuration parameters are changed, they must be reflected by the component asap.

      There are no thread safety guarantees on when configure might be called.

      Specified by:
        `configure` in interface `Configurable`

    - #### afterCreate

          public void afterCreate()
                           throws IOException

      Description copied from interface: `EventSerializer`
      Hook to write a header after file is opened for the first time.
      Specified by:
        `afterCreate` in interface `EventSerializer`
      Throws:
        `IOException`

    - #### afterReopen

          public void afterReopen()
                           throws IOException

      Description copied from interface: `EventSerializer`
      Hook to handle any framing needed when file is re-opened (for write).
      Could have been named `afterOpenForAppend()`.
      Specified by:
        `afterReopen` in interface `EventSerializer`
      Throws:
        `IOException`

    - #### write

          public void write(Event event)
                     throws IOException

      Description copied from interface: `EventSerializer`
      Serialize and write the given event.
      Specified by:
        `write` in interface `EventSerializer`
      Parameters:
        `event` - Event to write to the underlying stream.
      Throws:
        `IOException`

    - #### flush

          public void flush()
                     throws IOException

      Description copied from interface: `EventSerializer`
      Hook to flush any internal write buffers to the underlying stream. It is NOT necessary for an implementation to then call flush() / sync() on the underlying stream itself, since those semantics would be provided by the driver that calls this API.
      Specified by:
        `flush` in interface `EventSerializer`
      Throws:
        `IOException`

    - #### beforeClose

          public void beforeClose()
                           throws IOException

      Description copied from interface: `EventSerializer`
      Hook to write a trailer before the stream is closed. Implementations must not buffer data in this call since EventSerializer.flush() is not guaranteed to be called after beforeClose().
      Specified by:
        `beforeClose` in interface `EventSerializer`
      Throws:
        `IOException`

    - #### supportsReopen

          public boolean supportsReopen()

      Description copied from interface: `EventSerializer`
      Specify whether this output format supports reopening files for append. For example, this method should return `false` if `EventSerializer.beforeClose()` writes a trailer that "finalizes" the file (this type of behavior is file format-specific).
      Could have been named `supportsAppend()`.
      Specified by:
        `supportsReopen` in interface `EventSerializer`

Copyright © 2009-2016 Apache Software Foundation. All Rights Reserved.