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
ConstructorsConstructorDescriptionDelegatingByTypeSerializer(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 TypeMethodDescriptionvoidprotected <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 booleanReturns 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, waitMethods 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 aLinkedHashMapis 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:
configurein interfaceorg.apache.kafka.common.serialization.Serializer<Object>
-
serialize
- Specified by:
serializein interfaceorg.apache.kafka.common.serialization.Serializer<Object>
-
serialize
- Specified by:
serializein 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
-