com.fasterxml.jackson.databind.module

## Class SimpleSerializers

- java.lang.Object
- - com.fasterxml.jackson.databind.ser.Serializers.Base
  - - com.fasterxml.jackson.databind.module.SimpleSerializers

All Implemented Interfaces:
  Serializers, Serializable

    public class SimpleSerializers
    extends Serializers.Base
    implements Serializable

Simple implementation `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.

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.ser.Serializers

`Serializers.Base`

### Field Summary

Fields
`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 Summary

Constructors
Constructor and Description
`SimpleSerializers()`
`SimpleSerializers(List<JsonSerializer<?>> sers)`

### Method Summary

Methods
`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 or reference type (for which other methods are called).

### Methods inherited from class com.fasterxml.jackson.databind.ser.Serializers.Base

`findReferenceSerializer`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### _classMappings

    protected HashMap<ClassKey,JsonSerializer<?>> _classMappings

Class-based mappings that are used both for exact and sub-class matches.

#### _interfaceMappings

    protected HashMap<ClassKey,JsonSerializer<?>> _interfaceMappings

Interface-based matches.

#### _hasEnumSerializer

    protected boolean _hasEnumSerializer

Flag to help find "generic" enum serializer, if one has been registered.

Since:
  2.3

### Constructor Detail

#### SimpleSerializers

    public SimpleSerializers()

#### SimpleSerializers

    public SimpleSerializers(List<JsonSerializer<?>> sers)

Since:
  2.1

### Method Detail

#### addSerializer

    public 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). For serializers that do not declare handled type, use the variant that takes two arguments.

Parameters:
  `ser` -

#### addSerializer

    public <T> void addSerializer(Class<? extends T> type,
                         JsonSerializer<T> ser)

#### addSerializers

    public void addSerializers(List<JsonSerializer<?>> sers)

Since:
  2.1

#### findSerializer

    public JsonSerializer<?> findSerializer(SerializationConfig config,
                                   JavaType type,
                                   BeanDescription beanDesc)

Description copied from interface: `Serializers`
Method called by serialization framework first time a serializer is needed for specified type, which is not of a container or reference type (for which other methods are called).

Specified by:
  `findSerializer` in interface `Serializers`
Overrides:
  `findSerializer` in class `Serializers.Base`
Parameters:
  `config` - Serialization configuration in use
  `type` - Fully resolved type of instances to serialize
  `beanDesc` - Additional information about type
Returns:
  Configured serializer to use for the type; or null if implementation does not recognize or support type

#### findArraySerializer

    public JsonSerializer<?> findArraySerializer(SerializationConfig config,
                                        ArrayType type,
                                        BeanDescription beanDesc,
                                        TypeSerializer elementTypeSerializer,
                                        JsonSerializer<Object> elementValueSerializer)

Description copied from interface: `Serializers`
Method called by serialization framework first time a serializer is needed for specified array type. Implementation should return a serializer instance if it supports specified type; or null if it does not.

Specified by:
  `findArraySerializer` in interface `Serializers`
Overrides:
  `findArraySerializer` in class `Serializers.Base`

#### findCollectionSerializer

    public JsonSerializer<?> findCollectionSerializer(SerializationConfig config,
                                             CollectionType type,
                                             BeanDescription beanDesc,
                                             TypeSerializer elementTypeSerializer,
                                             JsonSerializer<Object> elementValueSerializer)

Description copied from interface: `Serializers`
Method called by serialization framework first time a serializer is needed for specified `Collection` type. Implementation should return a serializer instance if it supports specified type; or null if it does not.

Specified by:
  `findCollectionSerializer` in interface `Serializers`
Overrides:
  `findCollectionSerializer` in class `Serializers.Base`

#### findCollectionLikeSerializer

    public JsonSerializer<?> findCollectionLikeSerializer(SerializationConfig config,
                                                 CollectionLikeType type,
                                                 BeanDescription beanDesc,
                                                 TypeSerializer elementTypeSerializer,
                                                 JsonSerializer<Object> elementValueSerializer)

Description copied from interface: `Serializers`
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). Implementation should return a serializer instance if it supports specified type; or null if it does not.

Specified by:
  `findCollectionLikeSerializer` in interface `Serializers`
Overrides:
  `findCollectionLikeSerializer` in class `Serializers.Base`

#### findMapSerializer

    public JsonSerializer<?> findMapSerializer(SerializationConfig config,
                                      MapType type,
                                      BeanDescription beanDesc,
                                      JsonSerializer<Object> keySerializer,
                                      TypeSerializer elementTypeSerializer,
                                      JsonSerializer<Object> elementValueSerializer)

Description copied from interface: `Serializers`
Method called by serialization framework first time a serializer is needed for specified `Map` type. Implementation should return a serializer instance if it supports specified type; or null if it does not.

Specified by:
  `findMapSerializer` in interface `Serializers`
Overrides:
  `findMapSerializer` in class `Serializers.Base`

#### findMapLikeSerializer

    public JsonSerializer<?> findMapLikeSerializer(SerializationConfig config,
                                          MapLikeType type,
                                          BeanDescription beanDesc,
                                          JsonSerializer<Object> keySerializer,
                                          TypeSerializer elementTypeSerializer,
                                          JsonSerializer<Object> elementValueSerializer)

Description copied from interface: `Serializers`
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). Implementation should return a serializer instance if it supports specified type; or null if it does not.

Specified by:
  `findMapLikeSerializer` in interface `Serializers`
Overrides:
  `findMapLikeSerializer` in class `Serializers.Base`

#### _findInterfaceMapping

    protected JsonSerializer<?> _findInterfaceMapping(Class<?> cls,
                                          ClassKey key)

#### _addSerializer

    protected void _addSerializer(Class<?> cls,
                      JsonSerializer<?> ser)