Serializers
Date: 2016-12-04

com.fasterxml.jackson.databind.ser

## Interface Serializers

- All Known Implementing Classes:
    CoreXMLSerializers, Serializers.Base, SimpleSerializers

      public interface Serializers

  Interface that defines API for simple extensions that can provide additional serializers for various types. Access is by a single callback method; instance is to either return a configured `JsonSerializer` for specified type, or null to indicate that it does not support handling of the type. In latter case, further calls can be made for other providers; in former case returned serializer is used for handling of instances of specified type.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `Serializers.Base` Basic `Serializers` implementation that implements all methods but provides no serializers.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `JsonSerializer<?>` | `findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<java.lang.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<java.lang.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<java.lang.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<java.lang.Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<java.lang.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<java.lang.Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<java.lang.Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified `Map` type.
    `JsonSerializer<?>` | `findReferenceSerializer(SerializationConfig config, ReferenceType type, BeanDescription beanDesc, TypeSerializer contentTypeSerializer, JsonSerializer<java.lang.Object> contentValueSerializer)` Method called by serialization framework first time a serializer is needed for given `ReferenceType`
    `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).

- - ### Method Detail

    - #### findSerializer

          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).
      Parameters:
        `type` - Fully resolved type of instances to serialize
        `config` - Serialization configuration in use
        `beanDesc` - Additional information about type
      Returns:
        Configured serializer to use for the type; or null if implementation does not recognize or support type

    - #### findReferenceSerializer

          JsonSerializer<?> findReferenceSerializer(SerializationConfig config,
                                                  ReferenceType type,
                                                  BeanDescription beanDesc,
                                                  TypeSerializer contentTypeSerializer,
                                                  JsonSerializer<java.lang.Object> contentValueSerializer)

      Method called by serialization framework first time a serializer is needed for given `ReferenceType`
      Since:
        2.7

    - #### findArraySerializer

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

      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.

    - #### findCollectionSerializer

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

      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.

    - #### findCollectionLikeSerializer

          JsonSerializer<?> findCollectionLikeSerializer(SerializationConfig config,
                                                       CollectionLikeType type,
                                                       BeanDescription beanDesc,
                                                       TypeSerializer elementTypeSerializer,
                                                       JsonSerializer<java.lang.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). Implementation should return a serializer instance if it supports specified type; or null if it does not.

    - #### findMapSerializer

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

      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.

    - #### findMapLikeSerializer

          JsonSerializer<?> findMapLikeSerializer(SerializationConfig config,
                                                MapLikeType type,
                                                BeanDescription beanDesc,
                                                JsonSerializer<java.lang.Object> keySerializer,
                                                TypeSerializer elementTypeSerializer,
                                                JsonSerializer<java.lang.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). Implementation should return a serializer instance if it supports specified type; or null if it does not.