Interface Deserializer<T>
- Type Parameters:
T
- Type to be deserialized into.
- All Superinterfaces:
AutoCloseable
,Closeable
- All Known Implementing Classes:
BooleanDeserializer
,ByteArrayDeserializer
,ByteBufferDeserializer
,BytesDeserializer
,DoubleDeserializer
,FloatDeserializer
,IntegerDeserializer
,ListDeserializer
,LongDeserializer
,SessionWindowedDeserializer
,ShortDeserializer
,StringDeserializer
,TimeWindowedDeserializer
,UUIDDeserializer
,VoidDeserializer
This interface can be combined with ClusterResourceListener
to receive cluster metadata once it's available, as well as Monitorable
to enable the deserializer to register metrics. For the latter, the following tags are automatically added to
all metrics registered: config
set to either key.deserializer
or value.deserializer
,
and class
set to the deserializer class name.
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
close()
Close this deserializer.default void
Configure this class.deserialize
(String topic, byte[] data) Deserialize a record value from a byte array into a value or object.default T
deserialize
(String topic, Headers headers, byte[] data) Deserialize a record value from a byte array into a value or object.default T
deserialize
(String topic, Headers headers, ByteBuffer data) Deserialize a record value from aByteBuffer
into a value or object.
-
Method Details
-
configure
Configure this class.- Parameters:
configs
- configs in key/value pairsisKey
- whether the deserializer is used for the key or the value
-
deserialize
Deserialize a record value from a byte array into a value or object.It is recommended to deserialize a
null
byte array to anull
object.- Parameters:
topic
- topic associated with the datadata
- serialized bytes; may benull
- Returns:
- deserialized typed data; may be
null
-
deserialize
Deserialize a record value from a byte array into a value or object.It is recommended to deserialize a
null
byte array to anull
object.Note that the passed in
Headers
may be empty, but nevernull
. The implementation is allowed to modify the passed in headers, as a side effect of deserialization. It is considered best practice to not delete or modify existing headers, but rather only add new ones.- Parameters:
topic
- topic associated with the dataheaders
- headers associated with the recorddata
- serialized bytes; may benull
- Returns:
- deserialized typed data; may be
null
-
deserialize
Deserialize a record value from aByteBuffer
into a value or object.If
ByteBufferDeserializer
is used by an application, the application code cannot make any assumptions about the returnedByteBuffer
like the position, limit, capacity, etc., or if it is backed byan array or not
.Similarly, if this method is overridden, the implementation cannot make any assumptions about the passed in
ByteBuffer
either.It is recommended to deserialize a
null
ByteBuffer
to anull
object.Note that the passed in
Headers
may be empty, but nevernull
. The implementation is allowed to modify the passed in headers, as a side effect of deserialization. It is considered best practice to not delete or modify existing headers, but rather only add new ones.- Parameters:
topic
- topic associated with the dataheaders
- headers associated with the recorddata
- serialized ByteBuffer; may benull
- Returns:
- deserialized typed data; may be
null
-
close
default void close()Close this deserializer.This method must be idempotent as it may be called multiple times.
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-