## Uses of Class
com.fasterxml.jackson.databind.SerializerProvider

- Packages that use SerializerProvider
  Package | Description
  --- | ---
  com.fasterxml.jackson.databind | Contains basic mapper (conversion) functionality that allows for converting between regular streaming json content and Java objects (beans or Tree Model: support for both is via `ObjectMapper` class, as well as convenience methods included in `JsonParser`
  com.fasterxml.jackson.databind.ext | Contains extended support for "external" packages: things that may or may not be present in runtime environment, but that are commonly enough used so that explicit support can be added.
  com.fasterxml.jackson.databind.jsonFormatVisitors |
  com.fasterxml.jackson.databind.jsonschema | Classes needed for JSON schema support (currently just ability to generate schemas using serialization part of data mapping)
  com.fasterxml.jackson.databind.node | Contains concrete `JsonNode` implementations Jackson uses for the Tree model.
  com.fasterxml.jackson.databind.ser | Contains implementation classes of serialization part of data binding.
  com.fasterxml.jackson.databind.ser.impl | Contains implementation classes of serialization part of data binding.
  com.fasterxml.jackson.databind.ser.std |
  com.fasterxml.jackson.databind.type | Package that contains concrete implementations of `JavaType`, as well as the factory (`TypeFactory`) for constructing instances from various input data types (like `Class`, `Type`) and programmatically (for structured types, arrays, `List`s and `Map`s).
  com.fasterxml.jackson.databind.util | Utility classes for Mapper package.

- - ### Uses of SerializerProvider in com.fasterxml.jackson.databind

    Methods in com.fasterxml.jackson.databind that return SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `SerializerProvider` | ObjectMapper.`getSerializerProvider()`

    Methods in com.fasterxml.jackson.databind with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `void` | JsonSerializable.`serialize(JsonGenerator jgen, SerializerProvider provider)` Serialization method called when no additional type information is to be included in serialization.
    `abstract void` | JsonSerializer.`serialize(T value, JsonGenerator jgen, SerializerProvider provider)` Method that can be called to ask implementation to serialize values of type this serializer handles.
    `void` | JsonSerializable.`serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Serialization method called when additional type information is expected to be included in serialization, for deserialization to use.
    `void` | JsonSerializer.`serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

    Constructors in com.fasterxml.jackson.databind with parameters of type SerializerProvider
    Constructor and Description
    `SerializerProvider(SerializerProvider src, SerializationConfig config, SerializerFactory f)` "Copy-constructor", used by sub-classes.

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.ext

    Methods in com.fasterxml.jackson.databind.ext with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `JsonNode` | DOMSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | CoreXMLSerializers.XMLGregorianCalendarSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `void` | DOMSerializer.`serialize(Node value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | CoreXMLSerializers.XMLGregorianCalendarSerializer.`serialize(XMLGregorianCalendar value, JsonGenerator jgen, SerializerProvider provider)`

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.jsonFormatVisitors

    Fields in com.fasterxml.jackson.databind.jsonFormatVisitors declared as SerializerProvider
    Modifier and Type | Field and Description
    --- | ---
    `protected SerializerProvider` | JsonObjectFormatVisitor.Base.`_provider`
    `protected SerializerProvider` | JsonMapFormatVisitor.Base.`_provider`
    `protected SerializerProvider` | JsonArrayFormatVisitor.Base.`_provider`

    Methods in com.fasterxml.jackson.databind.jsonFormatVisitors that return SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `SerializerProvider` | JsonObjectFormatVisitor.Base.`getProvider()`
    `SerializerProvider` | JsonMapFormatVisitor.Base.`getProvider()`
    `SerializerProvider` | JsonFormatVisitorWithSerializerProvider.`getProvider()`
    `SerializerProvider` | JsonArrayFormatVisitor.Base.`getProvider()`

    Methods in com.fasterxml.jackson.databind.jsonFormatVisitors with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `void` | JsonObjectFormatVisitor.Base.`setProvider(SerializerProvider p)`
    `void` | JsonMapFormatVisitor.Base.`setProvider(SerializerProvider p)`
    `void` | JsonFormatVisitorWithSerializerProvider.`setProvider(SerializerProvider provider)`
    `void` | JsonArrayFormatVisitor.Base.`setProvider(SerializerProvider p)`

    Constructors in com.fasterxml.jackson.databind.jsonFormatVisitors with parameters of type SerializerProvider
    Constructor and Description
    `JsonArrayFormatVisitor.Base(SerializerProvider p)`
    `JsonMapFormatVisitor.Base(SerializerProvider p)`
    `JsonObjectFormatVisitor.Base(SerializerProvider p)`

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.jsonschema

    Methods in com.fasterxml.jackson.databind.jsonschema with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `JsonNode` | SchemaAware.`getSchema(SerializerProvider provider, Type typeHint)` Get the representation of the schema to which this serializer will conform.
    `JsonNode` | SchemaAware.`getSchema(SerializerProvider provider, Type typeHint, boolean isOptional)` Get the representation of the schema to which this serializer will conform.

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.node

    Methods in com.fasterxml.jackson.databind.node with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `void` | TextNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | ShortNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | POJONode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | ObjectNode.`serialize(JsonGenerator jg, SerializerProvider provider)` Method that can be called to serialize this node and all of its descendants using specified JSON generator.
    `void` | NullNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | MissingNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | LongNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | IntNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | FloatNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | DoubleNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | DecimalNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | BooleanNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | BinaryNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | BigIntegerNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `abstract void` | BaseJsonNode.`serialize(JsonGenerator jgen, SerializerProvider provider)` Method called to serialize node instances using given generator.
    `void` | ArrayNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | ValueNode.`serializeWithType(JsonGenerator jg, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | ObjectNode.`serializeWithType(JsonGenerator jg, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | MissingNode.`serializeWithType(JsonGenerator jg, SerializerProvider provider, TypeSerializer typeSer)`
    `abstract void` | BaseJsonNode.`serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Type information is needed, even if JsonNode instances are "plain" JSON, since they may be mixed with other types.
    `void` | ArrayNode.`serializeWithType(JsonGenerator jg, SerializerProvider provider, TypeSerializer typeSer)`

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.ser

    Subclasses of SerializerProvider in com.fasterxml.jackson.databind.ser
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DefaultSerializerProvider` Standard implementation used by `ObjectMapper`: adds methods only exposed to `ObjectMapper`, as well as constructors.
    `static class` | `DefaultSerializerProvider.Impl` Concrete implementation that defines factory method(s), defined as final.

    Methods in com.fasterxml.jackson.databind.ser with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `protected BeanPropertyWriter` | BeanSerializerFactory.`_constructWriter(SerializerProvider prov, BeanPropertyDefinition propDef, TypeBindings typeContext, PropertyBuilder pb, boolean staticTyping, AnnotatedMember accessor)` Secondary helper method for constructing `BeanPropertyWriter` for given member (field or method).
    `protected JsonSerializer<?>` | BeanSerializerFactory.`_createSerializer2(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)`
    `protected JsonSerializer<Object>` | BeanPropertyWriter.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | BasicSerializerFactory.`_findContentSerializer(SerializerProvider prov, Annotated a)` Helper method called to try to find whether there is an annotation in the class that indicates content ("value") serializer to use.
    `protected JsonSerializer<Object>` | BasicSerializerFactory.`_findKeySerializer(SerializerProvider prov, Annotated a)` Helper method called to try to find whether there is an annotation in the class that indicates key serializer to use.
    `void` | SerializerCache.`addAndResolveNonTypedSerializer(Class<?> type, JsonSerializer<Object> ser, SerializerProvider provider)`
    `void` | SerializerCache.`addAndResolveNonTypedSerializer(JavaType type, JsonSerializer<Object> ser, SerializerProvider provider)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildContainerSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, BeanProperty property, boolean staticTyping)` Deprecated. Since 2.1 (removed 'property' argument)
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildContainerSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)`
    `protected JsonSerializer<Object>` | BeanSerializerFactory.`constructBeanSerializer(SerializerProvider prov, BeanDescription beanDesc)` Method called to construct serializer for serializing specified bean type.
    `protected JsonSerializer<Object>` | BeanSerializerFactory.`constructBeanSerializer(SerializerProvider prov, BeanDescription beanDesc, BeanProperty property)` Deprecated. Since 2.1, do not pass 'property' argument
    `protected ObjectIdWriter` | BeanSerializerFactory.`constructObjectIdHandler(SerializerProvider prov, BeanDescription beanDesc, List<BeanPropertyWriter> props)`
    `JsonSerializer<?>` | ContextualSerializer.`createContextual(SerializerProvider prov, BeanProperty property)` Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property.
    `abstract JsonSerializer<Object>` | SerializerFactory.`createSerializer(SerializerProvider prov, JavaType baseType)` Method called to create (or, for immutable serializers, reuse) a serializer for given type.
    `JsonSerializer<Object>` | BeanSerializerFactory.`createSerializer(SerializerProvider prov, JavaType origType)` Main serializer constructor method.
    `abstract JsonSerializer<Object>` | BasicSerializerFactory.`createSerializer(SerializerProvider prov, JavaType type)`
    `JsonSerializer<Object>` | SerializerFactory.`createSerializer(SerializerProvider prov, JavaType baseType, BeanProperty property)` Deprecated. Since 2.1: need to use the new variant without 'property' argument (since one won't be passed)
    `void` | BeanPropertyFilter.`depositSchemaProperty(BeanPropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)` Method called by `BeanSerializer` to let the filter determine whether, and in what form the given property exist within the parent, or root, schema.
    `void` | BeanPropertyFilter.`depositSchemaProperty(BeanPropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider)` Method called by `BeanSerializer` to let the filter determine whether, and in what form the given property exist within the parent, or root, schema.
    `void` | BeanPropertyWriter.`depositSchemaProperty(ObjectNode propertiesNode, SerializerProvider provider)` Attempt to add the output of the given `BeanPropertyWriter` in the given `ObjectNode`.
    `protected List<BeanPropertyWriter>` | BeanSerializerFactory.`findBeanProperties(SerializerProvider prov, BeanDescription beanDesc, BeanSerializerBuilder builder)` Method used to collect all actual serializable properties.
    `JsonSerializer<Object>` | BeanSerializerFactory.`findBeanSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc)` Method that will try to construct a `BeanSerializer` for given class.
    `JsonSerializer<Object>` | BeanSerializerFactory.`findBeanSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, BeanProperty property)` Deprecated. Since 2.1 (use variant without 'property' argument).
    `protected Converter<Object,Object>` | BasicSerializerFactory.`findConverter(SerializerProvider prov, Annotated a)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findConvertingSerializer(SerializerProvider prov, Annotated a, JsonSerializer<?> ser)` Helper method that will check whether given annotated entity (usually class, but may also be a property accessor) indicates that a `Converter` is to be used; and if so, to construct and return suitable serializer for it.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findOptionalStdSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)` Overridable method called after checking all other types.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findSerializerByAnnotations(SerializerProvider prov, JavaType type, BeanDescription beanDesc)` Method called to see if one of primary per-class annotations (or related, like implementing of `JsonSerializable`) determines the serializer to use.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findSerializerByPrimaryType(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)` Method for checking if we can determine serializer to use based on set of known primary types, checking for set of known base types (exact matches having been compared against with `findSerializerByLookup`).
    `protected JsonSerializer<Object>` | BasicSerializerFactory.`findSerializerFromAnnotation(SerializerProvider prov, Annotated a)` Helper method called to check if a class or method has an annotation (@link com.fasterxml.jackson.databind.annotation.JsonSerialize#using) that tells the class to use for serialization.
    `void` | AnyGetterWriter.`getAndSerialize(Object bean, JsonGenerator jgen, SerializerProvider provider)`
    `protected boolean` | ContainerSerializer.`hasContentTypeAnnotation(SerializerProvider provider, BeanProperty property)` Helper method used to encapsulate logic for determining whether there is a property annotation that overrides element type; if so, we can and need to statically find the serializer.
    `void` | ResolvableSerializer.`resolve(SerializerProvider provider)` Method called after `SerializerProvider` has registered the serializer, but before it has returned it to the caller.
    `void` | AnyGetterWriter.`resolve(SerializerProvider provider)`
    `void` | BeanSerializer.`serialize(Object bean, JsonGenerator jgen, SerializerProvider provider)` Main serialization method that will delegate actual output to configured `BeanPropertyWriter` instances.
    `void` | BeanPropertyWriter.`serializeAsColumn(Object bean, JsonGenerator jgen, SerializerProvider prov)` Alternative to `BeanPropertyWriter.serializeAsField(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)` that is used when a POJO is serialized as JSON Array; the difference is that no field names are written.
    `void` | BeanPropertyWriter.`serializeAsField(Object bean, JsonGenerator jgen, SerializerProvider prov)` Method called to access property that this bean stands for, from within given bean, and to serialize it as a JSON Object field using appropriate serializer.
    `void` | BeanPropertyFilter.`serializeAsField(Object bean, JsonGenerator jgen, SerializerProvider prov, BeanPropertyWriter writer)` Method called by `BeanSerializer` to let filter decide what to do with given bean property value: the usual choices are to either filter out (i.e.
    `void` | BeanPropertyWriter.`serializeAsPlaceholder(Object bean, JsonGenerator jgen, SerializerProvider prov)` Method called to serialize a placeholder used in tabular output when real value is not to be included (is filtered out), but when we need an entry so that field indexes will not be off.

    Constructors in com.fasterxml.jackson.databind.ser with parameters of type SerializerProvider
    Constructor and Description
    `DefaultSerializerProvider.Impl(SerializerProvider src, SerializationConfig config, SerializerFactory f)`
    `DefaultSerializerProvider(SerializerProvider src, SerializationConfig config, SerializerFactory f)`

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.ser.impl

    Methods in com.fasterxml.jackson.databind.ser.impl with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<Object>` | UnwrappingBeanPropertyWriter.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `JsonSerializer<?>` | StringCollectionSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | StringArraySerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | IndexedStringListSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `void` | SimpleBeanPropertyFilter.`depositSchemaProperty(BeanPropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)`
    `void` | SimpleBeanPropertyFilter.`depositSchemaProperty(BeanPropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider)`
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddSerializer(Class<?> type, SerializerProvider provider, BeanProperty property)` Method called if initial lookup fails; will both find serializer and construct new map instance if warranted, and return both
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddSerializer(JavaType type, SerializerProvider provider, BeanProperty property)`
    `JsonNode` | UnknownSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StringArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | FailingSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `void` | StringCollectionSerializer.`serialize(Collection<String> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | IndexedStringListSerializer.`serialize(List<String> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | UnwrappingBeanSerializer.`serialize(Object bean, JsonGenerator jgen, SerializerProvider provider)` Main serialization method that will delegate actual output to configured `BeanPropertyWriter` instances.
    `void` | UnknownSerializer.`serialize(Object value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | TypeWrappedSerializer.`serialize(Object value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | FailingSerializer.`serialize(Object value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | BeanAsArraySerializer.`serialize(Object bean, JsonGenerator jgen, SerializerProvider provider)` Main serialization method that will delegate actual output to configured `BeanPropertyWriter` instances.
    `protected void` | BeanAsArraySerializer.`serializeAsArray(Object bean, JsonGenerator jgen, SerializerProvider provider)`
    `void` | UnwrappingBeanPropertyWriter.`serializeAsField(Object bean, JsonGenerator jgen, SerializerProvider prov)`
    `void` | SimpleBeanPropertyFilter.`serializeAsField(Object bean, JsonGenerator jgen, SerializerProvider provider, BeanPropertyWriter writer)`
    `void` | IteratorSerializer.`serializeContents(Iterator<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | IndexedListSerializer.`serializeContents(List<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StringArraySerializer.`serializeContents(String[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | IndexedListSerializer.`serializeContentsUsing(List<?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `void` | IndexedListSerializer.`serializeTypedContents(List<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StringCollectionSerializer.`serializeWithType(Collection<String> value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | IndexedStringListSerializer.`serializeWithType(List<String> value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | UnknownSerializer.`serializeWithType(Object value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | TypeWrappedSerializer.`serializeWithType(Object value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | BeanAsArraySerializer.`serializeWithType(Object bean, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | WritableObjectId.`writeAsField(JsonGenerator jgen, SerializerProvider provider, ObjectIdWriter w)`
    `boolean` | WritableObjectId.`writeAsId(JsonGenerator jgen, SerializerProvider provider, ObjectIdWriter w)`

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.ser.std

    Methods in com.fasterxml.jackson.databind.ser.std with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<Object>` | ObjectArraySerializer.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | MapSerializer.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | AsArraySerializerBase.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | ObjectArraySerializer.`_findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | MapSerializer.`_findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | AsArraySerializerBase.`_findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider)`
    `protected boolean` | EnumSerializer.`_serializeAsIndex(SerializerProvider provider)`
    `protected void` | BeanSerializerBase.`_serializeWithObjectId(Object bean, JsonGenerator jgen, SerializerProvider provider, boolean startEndObject)`
    `protected void` | BeanSerializerBase.`_serializeWithObjectId(Object bean, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `JsonSerializer<?>` | StdDelegatingSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | ObjectArraySerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | MapSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | JsonValueSerializer.`createContextual(SerializerProvider provider, BeanProperty property)` We can try to find the actual serializer for value, if we can statically figure out what the result type must be.
    `JsonSerializer<?>` | EnumSerializer.`createContextual(SerializerProvider prov, BeanProperty property)` To support some level of per-property configuration, we will need to make things contextual.
    `JsonSerializer<?>` | EnumMapSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | DateTimeSerializerBase.`createContextual(SerializerProvider prov, BeanProperty property)`
    `JsonSerializer<?>` | BeanSerializerBase.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | AsArraySerializerBase.`createContextual(SerializerProvider provider, BeanProperty property)` This method is needed to resolve contextual annotations like per-property overrides, as well as do recursive call to `createContextual` of content serializer, if known statically.
    `protected JsonSerializer<?>` | StdSerializer.`findConvertingContentSerializer(SerializerProvider provider, BeanProperty prop, JsonSerializer<?> existingSerializer)` Helper method that can be used to see if specified property has annotation indicating that a converter is to be used for contained values (contents of structured types; array/List/Map values)
    `protected JsonSerializer<Object>` | BeanSerializerBase.`findConvertingSerializer(SerializerProvider provider, BeanPropertyWriter prop)` Helper method that can be used to see if specified property is annotated to indicate use of a converter for property value (in case of container types, it is container type itself, not key or content type).
    `protected BeanPropertyFilter` | BeanSerializerBase.`findFilter(SerializerProvider provider)` Helper method used to locate filter that is needed, based on filter id this serializer was constructed with.
    `JsonNode` | ToStringSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | TokenBufferSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StringSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdSerializer.`getSchema(SerializerProvider provider, Type typeHint)` Default implementation simply claims type is "string"; usually overriden by custom serializers.
    `JsonNode` | StdScalarSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdKeySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.AtomicBooleanSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.AtomicIntegerSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.AtomicLongSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.AtomicReferenceSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.FileSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.ClassSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdDelegatingSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.BooleanArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.ByteArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.ShortArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.CharArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.IntArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.LongArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.FloatArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.DoubleArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StaticListSerializerBase.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | SqlTimeSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | SqlDateSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | SerializableSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | RawSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | ObjectArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.ShortSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.IntegerSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.IntLikeSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.LongSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.FloatSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.DoubleSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.NumberSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NullSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | MapSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | JsonValueSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | EnumSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | EnumMapSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | DateTimeSerializerBase.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | BooleanSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | BeanSerializerBase.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | AsArraySerializerBase.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdSerializer.`getSchema(SerializerProvider provider, Type typeHint, boolean isOptional)` Default implementation simply claims type is "string"; usually overriden by custom serializers.
    `JsonNode` | StdDelegatingSerializer.`getSchema(SerializerProvider provider, Type typeHint, boolean isOptional)`
    `void` | StdDelegatingSerializer.`resolve(SerializerProvider provider)`
    `void` | BeanSerializerBase.`resolve(SerializerProvider provider)` We need to implement `ResolvableSerializer` to be able to properly handle cyclic type references.
    `void` | StdJdkSerializers.AtomicBooleanSerializer.`serialize(AtomicBoolean value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdJdkSerializers.AtomicIntegerSerializer.`serialize(AtomicInteger value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdJdkSerializers.AtomicLongSerializer.`serialize(AtomicLong value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdJdkSerializers.AtomicReferenceSerializer.`serialize(AtomicReference<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | BooleanSerializer.`serialize(Boolean value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.ByteArraySerializer.`serialize(byte[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdKeySerializers.CalendarKeySerializer.`serialize(Calendar value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | CalendarSerializer.`serialize(Calendar value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.CharArraySerializer.`serialize(char[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdJdkSerializers.ClassSerializer.`serialize(Class<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdKeySerializers.DateKeySerializer.`serialize(Date value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | SqlDateSerializer.`serialize(Date value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | DateSerializer.`serialize(Date value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NumberSerializers.DoubleSerializer.`serialize(Double value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | EnumSerializer.`serialize(Enum<?> en, JsonGenerator jgen, SerializerProvider provider)`
    `void` | EnumMapSerializer.`serialize(EnumMap<? extends Enum<?>,?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdJdkSerializers.FileSerializer.`serialize(File value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NumberSerializers.FloatSerializer.`serialize(Float value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | InetAddressSerializer.`serialize(InetAddress value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NumberSerializers.IntegerSerializer.`serialize(Integer value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | SerializableSerializer.`serialize(JsonSerializable value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NumberSerializers.LongSerializer.`serialize(Long value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | MapSerializer.`serialize(Map<?,?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NumberSerializers.IntLikeSerializer.`serialize(Number value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NumberSerializers.NumberSerializer.`serialize(Number value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | ToStringSerializer.`serialize(Object value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdKeySerializer.`serialize(Object value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdDelegatingSerializer.`serialize(Object value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NullSerializer.`serialize(Object value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | JsonValueSerializer.`serialize(Object bean, JsonGenerator jgen, SerializerProvider prov)`
    `abstract void` | BeanSerializerBase.`serialize(Object bean, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NumberSerializers.ShortSerializer.`serialize(Short value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StringSerializer.`serialize(String value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdKeySerializers.StringKeySerializer.`serialize(String value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | SqlTimeSerializer.`serialize(Time value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | TimeZoneSerializer.`serialize(TimeZone value, JsonGenerator jgen, SerializerProvider provider)`
    `abstract void` | StdSerializer.`serialize(T value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | RawSerializer.`serialize(T value, JsonGenerator jgen, SerializerProvider provider)`
    `abstract void` | DateTimeSerializerBase.`serialize(T value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | AsArraySerializerBase.`serialize(T value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | ArraySerializerBase.`serialize(T value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | TokenBufferSerializer.`serialize(TokenBuffer value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.BooleanArraySerializer.`serializeContents(boolean[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | CollectionSerializer.`serializeContents(Collection<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.DoubleArraySerializer.`serializeContents(double[] value, JsonGenerator jgen, SerializerProvider provider)`
    `protected void` | EnumMapSerializer.`serializeContents(EnumMap<? extends Enum<?>,?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | EnumSetSerializer.`serializeContents(EnumSet<? extends Enum<?>> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.FloatArraySerializer.`serializeContents(float[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.IntArraySerializer.`serializeContents(int[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | IterableSerializer.`serializeContents(Iterable<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.LongArraySerializer.`serializeContents(long[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | ObjectArraySerializer.`serializeContents(Object[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.ShortArraySerializer.`serializeContents(short[] value, JsonGenerator jgen, SerializerProvider provider)`
    `protected abstract void` | AsArraySerializerBase.`serializeContents(T value, JsonGenerator jgen, SerializerProvider provider)`
    `protected abstract void` | ArraySerializerBase.`serializeContents(T value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | CollectionSerializer.`serializeContentsUsing(Collection<?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `protected void` | EnumMapSerializer.`serializeContentsUsing(EnumMap<? extends Enum<?>,?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> valueSer)`
    `void` | ObjectArraySerializer.`serializeContentsUsing(Object[] value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `void` | MapSerializer.`serializeFields(Map<?,?> value, JsonGenerator jgen, SerializerProvider provider)` Method called to serialize fields, when the value type is not statically known.
    `protected void` | BeanSerializerBase.`serializeFields(Object bean, JsonGenerator jgen, SerializerProvider provider)`
    `protected void` | BeanSerializerBase.`serializeFieldsFiltered(Object bean, JsonGenerator jgen, SerializerProvider provider)` Alternative serialization method that gets called when there is a `BeanPropertyFilter` that needs to be called to determine which properties are to be serialized (and possibly how)
    `protected void` | MapSerializer.`serializeFieldsUsing(Map<?,?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)` Method called to serialize fields, when the value type is statically known, so that value serializer is passed and does not need to be fetched from provider.
    `void` | ObjectArraySerializer.`serializeTypedContents(Object[] value, JsonGenerator jgen, SerializerProvider provider)`
    `protected void` | MapSerializer.`serializeTypedFields(Map<?,?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.ByteArraySerializer.`serializeWithType(byte[] value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | StdArraySerializers.CharArraySerializer.`serializeWithType(char[] value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | EnumMapSerializer.`serializeWithType(EnumMap<? extends Enum<?>,?> value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | InetAddressSerializer.`serializeWithType(InetAddress value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | SerializableSerializer.`serializeWithType(JsonSerializable value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | MapSerializer.`serializeWithType(Map<?,?> value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | ToStringSerializer.`serializeWithType(Object value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Default implementation will write type prefix, call regular serialization method (since assumption is that value itself does not need JSON Array or Object start/end markers), and then write type suffix.
    `void` | StdDelegatingSerializer.`serializeWithType(Object value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | JsonValueSerializer.`serializeWithType(Object bean, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer0)`
    `void` | BeanSerializerBase.`serializeWithType(Object bean, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | TimeZoneSerializer.`serializeWithType(TimeZone value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | StdScalarSerializer.`serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Default implementation will write type prefix, call regular serialization method (since assumption is that value itself does not need JSON Array or Object start/end markers), and then write type suffix.
    `void` | RawSerializer.`serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | NonTypedScalarSerializerBase.`serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | AsArraySerializerBase.`serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | ArraySerializerBase.`serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | TokenBufferSerializer.`serializeWithType(TokenBuffer value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Implementing typed output for contents of a TokenBuffer is very tricky, since we do not know for sure what its contents might look like (or, rather, we do know when serializing, but not necessarily when deserializing!) One possibility would be to check the current token, and use that to determine if we would output JSON Array, Object or scalar value.
    `void` | StdSerializer.`wrapAndThrow(SerializerProvider provider, Throwable t, Object bean, int index)`
    `void` | StdSerializer.`wrapAndThrow(SerializerProvider provider, Throwable t, Object bean, String fieldName)` Method that will modify caught exception (passed in as argument) as necessary to include reference information, and to ensure it is a subtype of `IOException`, or an unchecked exception.

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.type

    Methods in com.fasterxml.jackson.databind.type with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `void` | TypeBase.`serialize(JsonGenerator jgen, SerializerProvider provider)`
    `void` | TypeBase.`serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`

  - ### Uses of SerializerProvider in com.fasterxml.jackson.databind.util

    Methods in com.fasterxml.jackson.databind.util with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `void` | JSONWrappedObject.`serialize(JsonGenerator jgen, SerializerProvider provider)`
    `void` | JSONPObject.`serialize(JsonGenerator jgen, SerializerProvider provider)`
    `void` | JSONWrappedObject.`serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | JSONPObject.`serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`

Copyright © 2012-2013 FasterXML. All Rights Reserved.