public class SimpleSerializers extends Serializers.Base implements Serializable
Serializers
which allows registration of
serializers based on raw (type erased class).
It can work well for basic bean and scalar type serializers, but is not
a good fit for handling generic types (like Map
s and Collection
s).
Type registrations are assumed to be general; meaning that registration of serializer
for a super type will also be used for handling subtypes, unless an exact match
is found first. As an example, handler for CharSequence
would also be used
serializing StringBuilder
instances, unless a direct mapping was found.
Serializers.Base
Modifier and Type | Field and Description |
---|---|
protected HashMap<ClassKey,JsonSerializer<?>> |
_classMappings
Class-based mappings that are used both for exact and
sub-class matches.
|
protected boolean |
_hasEnumSerializer
Flag to help find "generic" enum serializer, if one has been registered.
|
protected HashMap<ClassKey,JsonSerializer<?>> |
_interfaceMappings
Interface-based matches.
|
Constructor and Description |
---|
SimpleSerializers() |
SimpleSerializers(List<JsonSerializer<?>> sers) |
Modifier and Type | Method and Description |
---|---|
protected void |
_addSerializer(Class<?> cls,
JsonSerializer<?> ser) |
protected JsonSerializer<?> |
_findInterfaceMapping(Class<?> cls,
ClassKey key) |
<T> void |
addSerializer(Class<? extends T> type,
JsonSerializer<T> ser) |
void |
addSerializer(JsonSerializer<?> ser)
Method for adding given serializer for type that
JsonSerializer.handledType()
specifies (which MUST return a non-null class; and can NOT be Object , as a
sanity check). |
void |
addSerializers(List<JsonSerializer<?>> sers) |
JsonSerializer<?> |
findArraySerializer(SerializationConfig config,
ArrayType type,
BeanDescription beanDesc,
TypeSerializer elementTypeSerializer,
JsonSerializer<Object> elementValueSerializer)
Method called by serialization framework first time a serializer is needed for
specified array type.
|
JsonSerializer<?> |
findCollectionLikeSerializer(SerializationConfig config,
CollectionLikeType type,
BeanDescription beanDesc,
TypeSerializer elementTypeSerializer,
JsonSerializer<Object> elementValueSerializer)
Method called by serialization framework first time a serializer is needed for
specified "Collection-like" type (type that acts like
Collection ,
but does not implement it). |
JsonSerializer<?> |
findCollectionSerializer(SerializationConfig config,
CollectionType type,
BeanDescription beanDesc,
TypeSerializer elementTypeSerializer,
JsonSerializer<Object> elementValueSerializer)
Method called by serialization framework first time a serializer is needed for
specified
Collection type. |
JsonSerializer<?> |
findMapLikeSerializer(SerializationConfig config,
MapLikeType type,
BeanDescription beanDesc,
JsonSerializer<Object> keySerializer,
TypeSerializer elementTypeSerializer,
JsonSerializer<Object> elementValueSerializer)
Method called by serialization framework first time a serializer is needed for
specified "Map-like" type (type that acts like
Map ,
but does not implement it). |
JsonSerializer<?> |
findMapSerializer(SerializationConfig config,
MapType type,
BeanDescription beanDesc,
JsonSerializer<Object> keySerializer,
TypeSerializer elementTypeSerializer,
JsonSerializer<Object> elementValueSerializer)
Method called by serialization framework first time a serializer is needed for
specified
Map type. |
JsonSerializer<?> |
findSerializer(SerializationConfig config,
JavaType type,
BeanDescription beanDesc)
Method called by serialization framework first time a serializer is needed for
specified type, which is not of a container type (for which other methods are
called).
|
protected HashMap<ClassKey,JsonSerializer<?>> _classMappings
protected HashMap<ClassKey,JsonSerializer<?>> _interfaceMappings
protected boolean _hasEnumSerializer
public SimpleSerializers()
public SimpleSerializers(List<JsonSerializer<?>> sers)
public void addSerializer(JsonSerializer<?> ser)
JsonSerializer.handledType()
specifies (which MUST return a non-null class; and can NOT be Object
, as a
sanity check).
For serializers that do not declare handled type, use the variant that takes
two arguments.ser
- public <T> void addSerializer(Class<? extends T> type, JsonSerializer<T> ser)
public void addSerializers(List<JsonSerializer<?>> sers)
public JsonSerializer<?> findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)
Serializers
findSerializer
in interface Serializers
findSerializer
in class Serializers.Base
config
- Serialization configuration in usetype
- Fully resolved type of instances to serializebeanDesc
- Additional information about typepublic JsonSerializer<?> findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
Serializers
findArraySerializer
in interface Serializers
findArraySerializer
in class Serializers.Base
public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
Serializers
Collection
type.
Implementation should return a serializer instance if it supports
specified type; or null if it does not.findCollectionSerializer
in interface Serializers
findCollectionSerializer
in class Serializers.Base
public JsonSerializer<?> findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
Serializers
Collection
,
but does not implement it).
Implementation should return a serializer instance if it supports
specified type; or null if it does not.findCollectionLikeSerializer
in interface Serializers
findCollectionLikeSerializer
in class Serializers.Base
public JsonSerializer<?> findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
Serializers
Map
type.
Implementation should return a serializer instance if it supports
specified type; or null if it does not.findMapSerializer
in interface Serializers
findMapSerializer
in class Serializers.Base
public JsonSerializer<?> findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
Serializers
Map
,
but does not implement it).
Implementation should return a serializer instance if it supports
specified type; or null if it does not.findMapLikeSerializer
in interface Serializers
findMapLikeSerializer
in class Serializers.Base
protected JsonSerializer<?> _findInterfaceMapping(Class<?> cls, ClassKey key)
protected void _addSerializer(Class<?> cls, JsonSerializer<?> ser)
Copyright © 2014-2015 FasterXML. All Rights Reserved.