Interface Serializers

All Known Implementing Classes:
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 ValueSerializer 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.
  • Method Details

    • findSerializer

      default ValueSerializer<?> findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides)
      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
      formatOverrides - (nullable) Optional format overrides (usually from property definition), to change definitions that beanDesc may have (and which are NOT included). Usually combined calling Serializers.Base#calculateEffectiveFormat.
      Returns:
      Configured serializer to use for the type; or null if implementation does not recognize or support type
    • findReferenceSerializer

      default ValueSerializer<?> findReferenceSerializer(SerializationConfig config, ReferenceType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides, TypeSerializer contentTypeSerializer, ValueSerializer<Object> contentValueSerializer)
      Method called by serialization framework first time a serializer is needed for given ReferenceType
      Parameters:
      formatOverrides - (nullable) Optional format overrides (usually from property definition), to change definitions that beanDesc may have (and which are NOT included). Usually combined calling Serializers.Base#calculateEffectiveFormat.
    • findArraySerializer

      default ValueSerializer<?> findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides, TypeSerializer elementTypeSerializer, ValueSerializer<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.
      Parameters:
      formatOverrides - (nullable) Optional format overrides (usually from property definition), to change definitions that beanDesc may have (and which are NOT included). Usually combined calling Serializers.Base#calculateEffectiveFormat.
    • findCollectionSerializer

      default ValueSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides, TypeSerializer elementTypeSerializer, ValueSerializer<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.
      Parameters:
      formatOverrides - (nullable) Optional format overrides (usually from property definition), to change definitions that beanDesc may have (and which are NOT included). Usually combined calling Serializers.Base#calculateEffectiveFormat.
    • findCollectionLikeSerializer

      default ValueSerializer<?> findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides, TypeSerializer elementTypeSerializer, ValueSerializer<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.
      Parameters:
      formatOverrides - (nullable) Optional format overrides (usually from property definition), to change definitions that beanDesc may have (and which are NOT included). Usually combined calling Serializers.Base#calculateEffectiveFormat.
    • findMapSerializer

      default ValueSerializer<?> findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides, ValueSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, ValueSerializer<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.
      Parameters:
      formatOverrides - (nullable) Optional format overrides (usually from property definition), to change definitions that beanDesc may have (and which are NOT included). Usually combined calling Serializers.Base#calculateEffectiveFormat.
    • findMapLikeSerializer

      default ValueSerializer<?> findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides, ValueSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, ValueSerializer<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.
      Parameters:
      formatOverrides - (nullable) Optional format overrides (usually from property definition), to change definitions that beanDesc may have (and which are NOT included). Usually combined calling Serializers.Base#calculateEffectiveFormat.
    • findExplicitPOJOSerializer

      default ValueSerializer<?> findExplicitPOJOSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc, JsonFormat.Value formatOverrides)
      Method called in case that a given type or property is declared to use shape JsonFormat.Shape.POJO and is expected to be serialized "as POJO", that is, as an (JSON) Object. This is usually NOT handled by extension modules as core databind knows how to do this, but sometimes it may be necessary to override this behavior.
      Since:
      3.0