Class DefaultObjectMapper
java.lang.Object
eu.cloudnetservice.driver.impl.network.object.DefaultObjectMapper
- All Implemented Interfaces:
eu.cloudnetservice.driver.network.object.ObjectMapper
@Singleton
public class DefaultObjectMapper
extends Object
implements eu.cloudnetservice.driver.network.object.ObjectMapper
The default object mapper implementation.
- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final eu.cloudnetservice.driver.network.object.ObjectMapperprivate final com.github.benmanes.caffeine.cache.LoadingCache<Type, Collection<Tuple2<Type, Type>>> -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new default object mapper instance with all default object serializers already registered.DefaultObjectMapper(boolean registerDefaultSerializers) Constructs a new default object mapper instance and optionally registers the default serializers to it. -
Method Summary
Modifier and TypeMethodDescription<T> TreadObject(@NonNull eu.cloudnetservice.driver.network.buffer.DataBuf dataBuf, @NonNull Type type) <T> @NonNull eu.cloudnetservice.driver.network.object.ObjectMapperregisterBinding(@NonNull Type type, @NonNull eu.cloudnetservice.driver.network.object.ObjectSerializer<T> serializer, boolean superTypes) protected <T> @Nullable eu.cloudnetservice.driver.network.object.ObjectSerializer<T> serializerForType(@NonNull Tuple2<Type, Type> typePair) Finds the best matching serializer for the given type.@NonNull eu.cloudnetservice.driver.network.object.ObjectMapperunregisterBinding(@NonNull Type type, boolean superTypes) @NonNull eu.cloudnetservice.driver.network.object.ObjectMapperunregisterBindings(@NonNull ClassLoader classLoader) <T> eu.cloudnetservice.driver.network.buffer.DataBuf.MutablewriteObject(eu.cloudnetservice.driver.network.buffer.DataBuf.Mutable dataBuf, T object)
-
Field Details
-
DEFAULT_MAPPER
public static final eu.cloudnetservice.driver.network.object.ObjectMapper DEFAULT_MAPPER -
DEFAULT_SERIALIZERS
-
registeredSerializers
-
typeCache
private final com.github.benmanes.caffeine.cache.LoadingCache<Type, Collection<Tuple2<Type,Type>>> typeCache
-
-
Constructor Details
-
DefaultObjectMapper
public DefaultObjectMapper()Constructs a new default object mapper instance with all default object serializers already registered. This call is equivalent tonew DefaultObjectMapper(true). -
DefaultObjectMapper
public DefaultObjectMapper(boolean registerDefaultSerializers) Constructs a new default object mapper instance and optionally registers the default serializers to it.- Parameters:
registerDefaultSerializers- true if the default serializers should get registered, false otherwise.
-
-
Method Details
-
unregisterBinding
-
unregisterBindings
@NonNull public @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper unregisterBindings(@NonNull @NonNull ClassLoader classLoader) - Specified by:
unregisterBindingsin interfaceeu.cloudnetservice.driver.network.object.ObjectMapper
-
registerBinding
@NonNull public <T> @NonNull eu.cloudnetservice.driver.network.object.ObjectMapper registerBinding(@NonNull @NonNull Type type, @NonNull @NonNull eu.cloudnetservice.driver.network.object.ObjectSerializer<T> serializer, boolean superTypes) - Specified by:
registerBindingin interfaceeu.cloudnetservice.driver.network.object.ObjectMapper
-
writeObject
-
readObject
-
serializerForType
@Nullable protected <T> @Nullable eu.cloudnetservice.driver.network.object.ObjectSerializer<T> serializerForType(@NonNull @NonNull Tuple2<Type, Type> typePair) Finds the best matching serializer for the given type. The method first tries to get the serializer by the exact type of the supplied type token, then by the raw type.- Type Parameters:
T- the generic type of the object serializer to get.- Parameters:
typePair- the mapping pair of the actual type (first) and the raw type (second) of the serializer to get.- Returns:
- the best matching object serializer for the given type.
- Throws:
NullPointerException- if the given type token is null.
-