Interface Serializer<T>

Type Parameters:
T - Type to be serialized from.
All Superinterfaces:
AutoCloseable, Closeable
All Known Implementing Classes:
BooleanSerializer, ByteArraySerializer, ByteBufferSerializer, BytesSerializer, DoubleSerializer, FloatSerializer, IntegerSerializer, ListSerializer, LongSerializer, SessionWindowedSerializer, ShortSerializer, StringSerializer, TimeWindowedSerializer, UUIDSerializer, VoidSerializer

public interface Serializer<T> extends Closeable
An interface for converting objects to bytes. A class that implements this interface is expected to have a constructor with no parameter.

This interface can be combined with ClusterResourceListener to receive cluster metadata once it's available, as well as Monitorable to enable the serializer to register metrics. For the latter, the following tags are automatically added to all metrics registered: config set to either key.serializer or value.serializer, and class set to the serializer class name.

  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    Close this serializer.
    default void
    configure(Map<String,?> configs, boolean isKey)
    Configure this class.
    default byte[]
    serialize(String topic, Headers headers, T data)
    Convert data into a byte array.
    byte[]
    serialize(String topic, T data)
    Convert data into a byte array.
  • Method Details

    • configure

      default void configure(Map<String,?> configs, boolean isKey)
      Configure this class.
      Parameters:
      configs - configs in key/value pairs
      isKey - whether the serializer is used for the key or the value
    • serialize

      byte[] serialize(String topic, T data)
      Convert data into a byte array.

      It is recommended to serialize null data to the null byte array.

      Parameters:
      topic - topic associated with data
      data - typed data; may be null
      Returns:
      serialized bytes; may be null
    • serialize

      default byte[] serialize(String topic, Headers headers, T data)
      Convert data into a byte array.

      It is recommended to serialize null data to the null byte array.

      Note that the passed in Headers may be empty, but never null. The implementation is allowed to modify the passed in headers, as a side effect of serialization. It is considered best practice to not delete or modify existing headers, but rather only add new ones.

      Parameters:
      topic - topic associated with data
      headers - headers associated with the record
      data - typed data; may be null
      Returns:
      serialized bytes; may be null
    • close

      default void close()
      Close this serializer.

      This method must be idempotent as it may be called multiple times.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable