Class DelegatingByTypeSerializer
java.lang.Object
org.springframework.kafka.support.serializer.DelegatingByTypeSerializer
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.apache.kafka.common.serialization.Serializer<Object>
public class DelegatingByTypeSerializer
extends Object
implements org.apache.kafka.common.serialization.Serializer<Object>
Delegates to a serializer based on type.
- Since:
- 2.7.9
-
Constructor Summary
ConstructorDescriptionDelegatingByTypeSerializer
(Map<Class<?>, org.apache.kafka.common.serialization.Serializer<?>> delegates) Construct an instance with the map of delegates; keys matched exactly.DelegatingByTypeSerializer
(Map<Class<?>, org.apache.kafka.common.serialization.Serializer<?>> delegates, boolean assignable) Construct an instance with the map of delegates; keys matched exactly or if the target object is assignable to the key, depending on the assignable argument. -
Method Summary
Modifier and TypeMethodDescriptionvoid
protected <T> org.apache.kafka.common.serialization.Serializer<T>
findDelegate
(T data, Map<Class<?>, org.apache.kafka.common.serialization.Serializer<?>> delegates) Determine the serializer for the data type.protected boolean
Returns true iffindDelegate(Object, Map)
should consider assignability to the key rather than an exact match.byte[]
byte[]
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.kafka.common.serialization.Serializer
close
-
Constructor Details
-
DelegatingByTypeSerializer
public DelegatingByTypeSerializer(Map<Class<?>, org.apache.kafka.common.serialization.Serializer<?>> delegates) Construct an instance with the map of delegates; keys matched exactly.- Parameters:
delegates
- the delegates.
-
DelegatingByTypeSerializer
public DelegatingByTypeSerializer(Map<Class<?>, org.apache.kafka.common.serialization.Serializer<?>> delegates, boolean assignable) Construct an instance with the map of delegates; keys matched exactly or if the target object is assignable to the key, depending on the assignable argument. If assignable, entries are checked in the natural entry order so an ordered map such as aLinkedHashMap
is recommended.- Parameters:
delegates
- the delegates.assignable
- whether the target is assignable to the key.- Since:
- 2.8.3
-
-
Method Details
-
isAssignable
protected boolean isAssignable()Returns true iffindDelegate(Object, Map)
should consider assignability to the key rather than an exact match.- Returns:
- true if assignable.
- Since:
- 2.8.3
-
configure
- Specified by:
configure
in interfaceorg.apache.kafka.common.serialization.Serializer<Object>
-
serialize
- Specified by:
serialize
in interfaceorg.apache.kafka.common.serialization.Serializer<Object>
-
serialize
- Specified by:
serialize
in interfaceorg.apache.kafka.common.serialization.Serializer<Object>
-
findDelegate
protected <T> org.apache.kafka.common.serialization.Serializer<T> findDelegate(T data, Map<Class<?>, org.apache.kafka.common.serialization.Serializer<?>> delegates) Determine the serializer for the data type.- Type Parameters:
T
- the data type- Parameters:
data
- the data.delegates
- the available delegates.- Returns:
- the delegate.
- Throws:
org.apache.kafka.common.errors.SerializationException
- when there is no match.- Since:
- 2.8.3
-