Class ProtoSerde<T extends com.google.protobuf.Message>

java.lang.Object
io.confluent.serializers.ProtoSerde<T>
All Implemented Interfaces:
SerdeWithJson<T>, UberSerde<T>, Closeable, AutoCloseable, org.apache.kafka.common.serialization.Deserializer<T>, org.apache.kafka.common.serialization.Serde<T>, org.apache.kafka.common.serialization.Serializer<T>

public class ProtoSerde<T extends com.google.protobuf.Message> extends Object implements UberSerde<T>, org.apache.kafka.common.serialization.Serde<T>, org.apache.kafka.common.serialization.Deserializer<T>, org.apache.kafka.common.serialization.Serializer<T>
  • Constructor Details

    • ProtoSerde

      public ProtoSerde(T instance)
  • Method Details

    • type

      public Class<T> type()
      Specified by:
      type in interface UberSerde<T extends com.google.protobuf.Message>
    • serialize

      public byte[] serialize(T message)
      Specified by:
      serialize in interface SerdeWithJson<T extends com.google.protobuf.Message>
    • serialize

      public byte[] serialize(String topic, T data)
      Specified by:
      serialize in interface org.apache.kafka.common.serialization.Serializer<T extends com.google.protobuf.Message>
    • deserialize

      public T deserialize(byte[] bytes)
      Specified by:
      deserialize in interface SerdeWithJson<T extends com.google.protobuf.Message>
    • deserialize

      public T deserialize(String topic, byte[] data)
      Specified by:
      deserialize in interface org.apache.kafka.common.serialization.Deserializer<T extends com.google.protobuf.Message>
    • configure

      public void configure(Map<String,?> configs, boolean isKey)
      Description copied from interface: UberSerde
      Configure this class, which will configure the underlying serializer and deserializer.
      Specified by:
      configure in interface org.apache.kafka.common.serialization.Deserializer<T extends com.google.protobuf.Message>
      Specified by:
      configure in interface org.apache.kafka.common.serialization.Serde<T extends com.google.protobuf.Message>
      Specified by:
      configure in interface org.apache.kafka.common.serialization.Serializer<T extends com.google.protobuf.Message>
      Specified by:
      configure in interface UberSerde<T extends com.google.protobuf.Message>
      Parameters:
      configs - configs in key/value pairs
      isKey - whether is for key or value
    • close

      public void close()
      Description copied from interface: UberSerde
      Close this deserializer.

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

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface org.apache.kafka.common.serialization.Deserializer<T extends com.google.protobuf.Message>
      Specified by:
      close in interface org.apache.kafka.common.serialization.Serde<T extends com.google.protobuf.Message>
      Specified by:
      close in interface org.apache.kafka.common.serialization.Serializer<T extends com.google.protobuf.Message>
      Specified by:
      close in interface UberSerde<T extends com.google.protobuf.Message>
    • serializer

      public org.apache.kafka.common.serialization.Serializer<T> serializer()
      Specified by:
      serializer in interface org.apache.kafka.common.serialization.Serde<T extends com.google.protobuf.Message>
    • deserializer

      public org.apache.kafka.common.serialization.Deserializer<T> deserializer()
      Specified by:
      deserializer in interface org.apache.kafka.common.serialization.Serde<T extends com.google.protobuf.Message>
    • fromJson

      public byte[] fromJson(String json)
      Specified by:
      fromJson in interface SerdeWithJson<T extends com.google.protobuf.Message>
    • toJson

      public String toJson(T obj)
      Specified by:
      toJson in interface SerdeWithJson<T extends com.google.protobuf.Message>
    • toJson

      public String toJson(T obj, boolean preseveFieldName)