Class SerializerFactory

java.lang.Object
tools.jackson.databind.ser.SerializerFactory
Direct Known Subclasses:
BasicSerializerFactory

public abstract class SerializerFactory extends Object
Abstract class that defines API used by SerializationContext to obtain actual ValueSerializer instances from multiple distinct factories.
  • Constructor Details

    • SerializerFactory

      public SerializerFactory()
  • Method Details

    • createSerializer

      public abstract ValueSerializer<Object> createSerializer(SerializationContext ctxt, JavaType baseType, BeanDescription beanDesc, JsonFormat.Value formatOverride)
      Method called to create (or, for immutable serializers, reuse) a serializer for given type.
      Parameters:
      ctxt - (not null) Context that needs to be used to resolve annotation-provided serializers (but NOT for others)
      formatOverride - (nullable) Possible format overrides (from property annotations) to use, above and beyond what `beanDesc` defines
      Since:
      3.0 (last argument added)
    • createKeySerializer

      public abstract ValueSerializer<Object> createKeySerializer(SerializationContext ctxt, JavaType type)
      Method called to create serializer to use for serializing JSON property names (which must be output as JsonToken.FIELD_NAME) for Map that has specified declared key type, and is for specified property (or, if property is null, as root value)
      Parameters:
      type - Declared type for Map keys
      Returns:
      Serializer to use, if factory knows it; null if not (in which case default serializer is to be used)
    • getDefaultNullKeySerializer

      public abstract ValueSerializer<Object> getDefaultNullKeySerializer()
      Returns serializer used to (try to) output a null key, due to an entry of Map having null key. The default implementation will throw an exception if this happens; alternative implementation (like one that would write an Empty String) can be defined.
    • getDefaultNullValueSerializer

      public abstract ValueSerializer<Object> getDefaultNullValueSerializer()
    • withAdditionalSerializers

      public abstract SerializerFactory withAdditionalSerializers(Serializers additional)
      Mutant factory method for creating a new factory instance with additional serializer provider: provider will get inserted as the first one to be checked.
    • withAdditionalKeySerializers

      public abstract SerializerFactory withAdditionalKeySerializers(Serializers additional)
      Mutant factory method for creating a new factory instance with additional key serializer provider: provider will get inserted as the first one to be checked.
    • withSerializerModifier

      public abstract SerializerFactory withSerializerModifier(ValueSerializerModifier modifier)
      Mutant factory method for creating a new factory instance with additional serializer modifier: modifier will get inserted as the first one to be checked.
    • withNullValueSerializer

      public abstract SerializerFactory withNullValueSerializer(ValueSerializer<?> nvs)
      Since:
      3.0
    • withNullKeySerializer

      public abstract SerializerFactory withNullKeySerializer(ValueSerializer<?> nks)
      Since:
      3.0
    • createSerializer

      @Deprecated public ValueSerializer<Object> createSerializer(SerializationContext ctxt, JavaType baseType)
      Deprecated.
      Since 3.0 use variant that takes JsonFormat.Value argument