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

- Packages that use SerializerProvider
  Package | Description
  --- | ---
  com.fasterxml.jackson.databind | Basic data binding (mapping) functionality that allows for reading JSON content into Java Objects (POJOs) and JSON Trees (`JsonNode`), as well as writing Java Objects and trees as JSON.
  com.fasterxml.jackson.databind.deser | Contains implementation classes of deserialization part of data binding.
  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 | Classes used for exposing logical structure of POJOs as Jackson sees it, and exposed via `ObjectMapper.acceptJsonFormatVisitor(Class, JsonFormatVisitorWrapper)` and `ObjectMapper.acceptJsonFormatVisitor(com.fasterxml.jackson.databind.JavaType, JsonFormatVisitorWrapper)` methods.
  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()` Accessor for the "blueprint" (or, factory) instance, from which instances are created by calling `DefaultSerializerProvider.createInstance(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory)`.
    `SerializerProvider` | ObjectMapper.`getSerializerProviderInstance()` Accessor for constructing and returning a `SerializerProvider` instance that may be used for accessing serializers.
    `SerializerProvider` | SerializerProvider.`setAttribute(Object key, Object value)`

    Methods in com.fasterxml.jackson.databind with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `void` | BeanProperty.`depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)` Method that can be called to visit the type structure that this property is part of.
    `void` | BeanProperty.Std.`depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)` Implementation of this method throws `UnsupportedOperationException`, since instances of this implementation should not be used as part of actual structure visited.
    `void` | BeanProperty.Bogus.`depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)`
    `static JsonMappingException` | JsonMappingException.`from(SerializerProvider ctxt, String msg)`
    `static JsonMappingException` | JsonMappingException.`from(SerializerProvider ctxt, String msg, Throwable problem)`
    `boolean` | JsonSerializable.Base.`isEmpty(SerializerProvider serializers)` Method that may be called on instance to determine if it is considered "empty" for purposes of serialization filtering or not.
    `boolean` | JsonSerializer.`isEmpty(SerializerProvider provider, T value)` Method called to check whether given serializable value is considered "empty" value (for purposes of suppressing serialization of empty values).
    `void` | JsonSerializable.`serialize(JsonGenerator gen, SerializerProvider serializers)` Serialization method called when no additional type information is to be included in serialization.
    `abstract void` | JsonSerializer.`serialize(T value, JsonGenerator gen, SerializerProvider serializers)` Method that can be called to ask implementation to serialize values of type this serializer handles.
    `void` | JsonSerializable.`serializeWithType(JsonGenerator gen, SerializerProvider serializers, 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 gen, SerializerProvider serializers, 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)` Copy-constructor used when making a copy of a blueprint instance.
    `SerializerProvider(SerializerProvider src, SerializationConfig config, SerializerFactory f)` "Copy-constructor", used by sub-classes when creating actual non-blueprint instances to use.

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

    Methods in com.fasterxml.jackson.databind.deser with parameters of type SerializerProvider
    Modifier and Type | Method and Description
    --- | ---
    `void` | SettableBeanProperty.`depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)`

  - ### 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
    --- | ---
    `JsonSerializer<?>` | CoreXMLSerializers.XMLGregorianCalendarSerializer.`createContextual(SerializerProvider prov, BeanProperty property)`
    `JsonNode` | DOMSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `boolean` | CoreXMLSerializers.XMLGregorianCalendarSerializer.`isEmpty(SerializerProvider provider, XMLGregorianCalendar value)`
    `void` | DOMSerializer.`serialize(Node value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | NioPathSerializer.`serialize(Path value, JsonGenerator gen, SerializerProvider serializers)`
    `void` | CoreXMLSerializers.XMLGregorianCalendarSerializer.`serialize(XMLGregorianCalendar value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NioPathSerializer.`serializeWithType(Path value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | CoreXMLSerializers.XMLGregorianCalendarSerializer.`serializeWithType(XMLGregorianCalendar value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`

  - ### 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` | JsonFormatVisitorWrapper.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` | JsonFormatVisitorWrapper.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` | JsonFormatVisitorWrapper.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
    `Base(SerializerProvider p)`
    `Base(SerializerProvider p)`
    `Base(SerializerProvider p)`
    `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
    --- | ---
    `boolean` | ObjectNode.`isEmpty(SerializerProvider serializers)`
    `boolean` | ArrayNode.`isEmpty(SerializerProvider serializers)`
    `void` | TextNode.`serialize(JsonGenerator g, SerializerProvider provider)`
    `void` | ShortNode.`serialize(JsonGenerator jg, SerializerProvider provider)`
    `void` | POJONode.`serialize(JsonGenerator gen, SerializerProvider serializers)`
    `void` | ObjectNode.`serialize(JsonGenerator g, SerializerProvider provider)` Method that can be called to serialize this node and all of its descendants using specified JSON generator.
    `void` | NullNode.`serialize(JsonGenerator g, 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 g, SerializerProvider provider)`
    `void` | DoubleNode.`serialize(JsonGenerator g, SerializerProvider provider)`
    `void` | DecimalNode.`serialize(JsonGenerator jgen, SerializerProvider provider)`
    `void` | BooleanNode.`serialize(JsonGenerator g, 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 f, SerializerProvider provider)`
    `void` | ValueNode.`serializeWithType(JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | ObjectNode.`serializeWithType(JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | MissingNode.`serializeWithType(JsonGenerator g, 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 g, 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 MapSerializer` | BasicSerializerFactory.`_checkMapContentInclusion(SerializerProvider prov, BeanDescription beanDesc, MapSerializer mapSer)` Helper method that does figures out content inclusion value to use, if any, and construct re-configured `MapSerializer` appropriately.
    `protected BeanPropertyWriter` | BeanSerializerFactory.`_constructWriter(SerializerProvider prov, BeanPropertyDefinition propDef, 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 JsonInclude.Value` | BasicSerializerFactory.`_findInclusionWithContent(SerializerProvider prov, BeanDescription beanDesc, JavaType contentType, Class<?> configType)` Helper method used for finding inclusion definitions for structured container types like `Map`s and referential types (like `AtomicReference`).
    `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.
    `protected boolean` | BeanPropertyWriter.`_handleSelfReference(Object bean, JsonGenerator gen, SerializerProvider prov, JsonSerializer<?> ser)` Method called to handle a direct self-reference through this property.
    `void` | SerializerCache.`addAndResolveNonTypedSerializer(Class<?> rawType, JavaType fullType, JsonSerializer<Object> ser, SerializerProvider provider)` Another alternative that will cover both access via raw type and matching fully resolved type, in one fell swoop.
    `void` | SerializerCache.`addAndResolveNonTypedSerializer(Class<?> type, JsonSerializer<Object> ser, SerializerProvider provider)`
    `void` | SerializerCache.`addAndResolveNonTypedSerializer(JavaType type, JsonSerializer<Object> ser, SerializerProvider provider)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildArraySerializer(SerializerProvider prov, ArrayType type, BeanDescription beanDesc, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `Object[]` (and subtypes, except for String).
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildAtomicReferenceSerializer(SerializerProvider prov, ReferenceType refType, BeanDescription beanDesc, boolean staticTyping, TypeSerializer contentTypeSerializer, JsonSerializer<Object> contentSerializer)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildCollectionSerializer(SerializerProvider prov, CollectionType type, BeanDescription beanDesc, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `List` types that support efficient by-index access
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildContainerSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildMapEntrySerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping, JavaType keyType, JavaType valueType)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildMapSerializer(SerializerProvider prov, MapType type, BeanDescription beanDesc, boolean staticTyping, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `Map` types.
    `protected BeanPropertyWriter` | PropertyBuilder.`buildWriter(SerializerProvider prov, BeanPropertyDefinition propDef, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, TypeSerializer contentTypeSer, AnnotatedMember am, boolean defaultUseStaticTyping)`
    `protected JsonSerializer<Object>` | BeanSerializerFactory.`constructBeanSerializer(SerializerProvider prov, BeanDescription beanDesc)` Method called to construct serializer for serializing specified bean type.
    `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)`
    `void` | BeanPropertyFilter.`depositSchemaProperty(BeanPropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)` Deprecated. 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)` Deprecated. Since 2.3: new code should use the alternative `depositSchemaProperty` method
    `abstract void` | PropertyWriter.`depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)` Traversal method used for things like JSON Schema generation, or POJO introspection.
    `void` | BeanPropertyWriter.`depositSchemaProperty(JsonObjectFormatVisitor v, SerializerProvider provider)`
    `abstract void` | PropertyWriter.`depositSchemaProperty(ObjectNode propertiesNode, SerializerProvider provider)` Deprecated. Since 2.2
    `void` | BeanPropertyWriter.`depositSchemaProperty(ObjectNode propertiesNode, SerializerProvider provider)` Deprecated.
    `void` | PropertyFilter.`depositSchemaProperty(PropertyWriter 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` | PropertyFilter.`depositSchemaProperty(PropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider)` Deprecated. Since 2.3: new code should use the alternative `depositSchemaProperty` method
    `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.
    `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.
    `JsonSerializer<?>` | BasicSerializerFactory.`findReferenceSerializer(SerializerProvider prov, ReferenceType refType, BeanDescription beanDesc, boolean staticTyping)`
    `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.`getAndFilter(Object bean, JsonGenerator gen, SerializerProvider provider, PropertyFilter filter)`
    `void` | AnyGetterWriter.`getAndSerialize(Object bean, JsonGenerator gen, SerializerProvider provider)`
    `protected boolean` | ContainerSerializer.`hasContentTypeAnnotation(SerializerProvider provider, BeanProperty property)` Deprecated. Since 2.7: should not be needed; should be enough to see if type has 'isStatic' modifier
    `protected List<BeanPropertyWriter>` | BeanSerializerFactory.`removeOverlappingTypeIds(SerializerProvider prov, BeanDescription beanDesc, BeanSerializerBuilder builder, List<BeanPropertyWriter> props)` Helper method called to ensure that we do not have "duplicate" type ids.
    `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 gen, SerializerProvider provider)` Main serialization method that will delegate actual output to configured `BeanPropertyWriter` instances.
    `void` | VirtualBeanPropertyWriter.`serializeAsElement(Object bean, JsonGenerator gen, SerializerProvider prov)`
    `abstract void` | PropertyWriter.`serializeAsElement(Object value, JsonGenerator jgen, SerializerProvider provider)` Serialization method called when output is to be done as an array, that is, not using property names.
    `void` | BeanPropertyWriter.`serializeAsElement(Object bean, JsonGenerator gen, 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` | PropertyFilter.`serializeAsElement(Object elementValue, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer)` Method called by container to let the filter decide what to do with given element value: the usual choices are to either filter out (i.e.
    `void` | VirtualBeanPropertyWriter.`serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov)`
    `abstract void` | PropertyWriter.`serializeAsField(Object value, JsonGenerator jgen, SerializerProvider provider)` The main serialization method called by filter when property is to be written normally.
    `void` | BeanPropertyWriter.`serializeAsField(Object bean, JsonGenerator gen, 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 pojo, JsonGenerator jgen, SerializerProvider prov, BeanPropertyWriter writer)` Deprecated. 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` | PropertyFilter.`serializeAsField(Object pojo, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer)` Method called by `BeanSerializer` to let the filter decide what to do with given bean property value: the usual choices are to either filter out (i.e.
    `abstract void` | PropertyWriter.`serializeAsOmittedField(Object value, JsonGenerator jgen, SerializerProvider provider)` Serialization method that filter needs to call in cases where property is to be filtered, but the underlying data format requires a placeholder of some kind.
    `void` | BeanPropertyWriter.`serializeAsOmittedField(Object bean, JsonGenerator gen, SerializerProvider prov)` Method called to indicate that serialization of a field was omitted due to filtering, in cases where backend data format does not allow basic omission.
    `abstract void` | PropertyWriter.`serializeAsPlaceholder(Object value, JsonGenerator jgen, SerializerProvider provider)` Serialization method called when doing tabular (positional) output from databind, but then value is to be omitted.
    `void` | BeanPropertyWriter.`serializeAsPlaceholder(Object bean, JsonGenerator gen, 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.
    `protected abstract Object` | VirtualBeanPropertyWriter.`value(Object bean, JsonGenerator gen, SerializerProvider prov)` Method called to figure out the value to serialize.

    Constructors in com.fasterxml.jackson.databind.ser with parameters of type SerializerProvider
    Constructor and Description
    `DefaultSerializerProvider(SerializerProvider src, SerializationConfig config, SerializerFactory f)`
    `Impl(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)`
    `protected JsonSerializer<Object>` | MapEntrySerializer.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | MapEntrySerializer.`_findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider)`
    `protected void` | IteratorSerializer.`_serializeDynamicContents(Iterator<?> value, JsonGenerator g, SerializerProvider provider)`
    `JsonSerializer<?>` | TypeWrappedSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | StringArraySerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | MapEntrySerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `void` | SimpleBeanPropertyFilter.`depositSchemaProperty(BeanPropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)` Deprecated.
    `void` | SimpleBeanPropertyFilter.`depositSchemaProperty(BeanPropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider)` Deprecated.
    `void` | UnwrappingBeanPropertyWriter.`depositSchemaProperty(JsonObjectFormatVisitor visitor, SerializerProvider provider)`
    `void` | SimpleBeanPropertyFilter.`depositSchemaProperty(PropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)`
    `void` | SimpleBeanPropertyFilter.`depositSchemaProperty(PropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider)` Deprecated.
    `protected void` | UnknownSerializer.`failForEmpty(SerializerProvider prov, Object value)`
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddKeySerializer(Class<?> type, SerializerProvider provider, BeanProperty property)` Method called if initial lookup fails, when looking for a key serializer (possible attached indirectly to a property) Will both find serializer and construct new map instance if warranted, and return both.
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddPrimarySerializer(Class<?> type, SerializerProvider provider, BeanProperty property)` Method called if initial lookup fails, when looking for a primary serializer (one that is directly attached to a property).
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddPrimarySerializer(JavaType type, SerializerProvider provider, BeanProperty property)`
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddRootValueSerializer(Class<?> type, SerializerProvider provider)` Method called if initial lookup fails, when looking for a root value serializer: one that is not directly attached to a property, but needs to have `TypeSerializer` wrapped around it.
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddRootValueSerializer(JavaType type, SerializerProvider provider)`
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddSecondarySerializer(Class<?> type, SerializerProvider provider, BeanProperty property)` Method called if initial lookup fails, when looking for a non-primary serializer (one that is not directly attached to a property).
    `PropertySerializerMap.SerializerAndMapResult` | PropertySerializerMap.`findAndAddSecondarySerializer(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)`
    `boolean` | IteratorSerializer.`isEmpty(SerializerProvider prov, Iterator<?> value)`
    `boolean` | IndexedListSerializer.`isEmpty(SerializerProvider prov, List<?> value)`
    `boolean` | MapEntrySerializer.`isEmpty(SerializerProvider prov, Map.Entry<?,?> entry)`
    `boolean` | UnknownSerializer.`isEmpty(SerializerProvider provider, Object value)`
    `boolean` | StringArraySerializer.`isEmpty(SerializerProvider prov, String[] value)`
    `void` | StringCollectionSerializer.`serialize(Collection<String> value, JsonGenerator g, SerializerProvider provider)`
    `void` | IteratorSerializer.`serialize(Iterator<?> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | IndexedListSerializer.`serialize(List<?> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | IndexedStringListSerializer.`serialize(List<String> value, JsonGenerator g, SerializerProvider provider)`
    `void` | MapEntrySerializer.`serialize(Map.Entry<?,?> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | UnwrappingBeanSerializer.`serialize(Object bean, JsonGenerator gen, SerializerProvider provider)` Main serialization method that will delegate actual output to configured `BeanPropertyWriter` instances.
    `void` | UnknownSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | TypeWrappedSerializer.`serialize(Object value, JsonGenerator g, SerializerProvider provider)`
    `void` | FailingSerializer.`serialize(Object value, JsonGenerator g, SerializerProvider provider)`
    `void` | BeanAsArraySerializer.`serialize(Object bean, JsonGenerator gen, SerializerProvider provider)` Main serialization method that will delegate actual output to configured `BeanPropertyWriter` instances.
    `void` | StringArraySerializer.`serialize(String[] value, JsonGenerator gen, SerializerProvider provider)`
    `protected void` | BeanAsArraySerializer.`serializeAsArray(Object bean, JsonGenerator gen, SerializerProvider provider)`
    `void` | SimpleBeanPropertyFilter.`serializeAsElement(Object elementValue, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer)`
    `void` | UnwrappingBeanPropertyWriter.`serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov)`
    `void` | SimpleBeanPropertyFilter.`serializeAsField(Object bean, JsonGenerator jgen, SerializerProvider provider, BeanPropertyWriter writer)` Deprecated.
    `void` | SimpleBeanPropertyFilter.`serializeAsField(Object pojo, JsonGenerator jgen, SerializerProvider provider, PropertyWriter writer)`
    `void` | IteratorSerializer.`serializeContents(Iterator<?> value, JsonGenerator g, SerializerProvider provider)`
    `void` | IndexedListSerializer.`serializeContents(List<?> value, JsonGenerator g, SerializerProvider provider)`
    `void` | StringArraySerializer.`serializeContents(String[] value, JsonGenerator gen, SerializerProvider provider)`
    `void` | IndexedListSerializer.`serializeContentsUsing(List<?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `protected void` | MapEntrySerializer.`serializeDynamic(Map.Entry<?,?> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | IndexedListSerializer.`serializeTypedContents(List<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StringCollectionSerializer.`serializeWithType(Collection<String> value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | IndexedStringListSerializer.`serializeWithType(List<String> value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | MapEntrySerializer.`serializeWithType(Map.Entry<?,?> value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | UnwrappingBeanSerializer.`serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | UnknownSerializer.`serializeWithType(Object value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | TypeWrappedSerializer.`serializeWithType(Object value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | BeanAsArraySerializer.`serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `protected Object` | AttributePropertyWriter.`value(Object bean, JsonGenerator jgen, SerializerProvider prov)`
    `void` | WritableObjectId.`writeAsField(JsonGenerator gen, SerializerProvider provider, ObjectIdWriter w)` Method called to output Object Id as specified.
    `boolean` | WritableObjectId.`writeAsId(JsonGenerator gen, 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 boolean` | DateTimeSerializerBase.`_asTimestamp(SerializerProvider serializers)`
    `protected JsonSerializer<Object>` | StdKeySerializers.Dynamic.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `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 JsonSerializer<Object>` | StdDelegatingSerializer.`_findSerializer(Object value, SerializerProvider serializers)` Helper method used for locating serializer to use in dynamic use case, where actual type value gets converted to is not specified beyond basic `Object`, and where serializer needs to be located dynamically based on actual value type.
    `protected Map<?,?>` | MapSerializer.`_orderEntries(Map<?,?> input, JsonGenerator gen, SerializerProvider provider)`
    `protected boolean` | EnumSerializer.`_serializeAsIndex(SerializerProvider serializers)`
    `protected void` | DateTimeSerializerBase.`_serializeAsString(Date value, JsonGenerator g, SerializerProvider provider)`
    `protected void` | BeanSerializerBase.`_serializeObjectId(Object bean, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer, WritableObjectId objectId)`
    `protected void` | BeanSerializerBase.`_serializeWithObjectId(Object bean, JsonGenerator gen, SerializerProvider provider, boolean startEndObject)`
    `protected void` | BeanSerializerBase.`_serializeWithObjectId(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `protected boolean` | ArraySerializerBase.`_shouldUnwrapSingle(SerializerProvider provider)`
    `protected boolean` | ReferenceTypeSerializer.`_useStatic(SerializerProvider provider, BeanProperty property, JavaType referredType)`
    `protected void` | MapSerializer.`_writeNullKeyedEntry(JsonGenerator gen, SerializerProvider provider, Object value)`
    `JsonSerializer<?>` | StdDelegatingSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | StaticListSerializerBase.`createContextual(SerializerProvider serializers, BeanProperty property)`
    `JsonSerializer<?>` | ReferenceTypeSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | ObjectArraySerializer.`createContextual(SerializerProvider serializers, BeanProperty property)`
    `JsonSerializer<?>` | NumberSerializers.Base.`createContextual(SerializerProvider prov, 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<?>` | InetAddressSerializer.`createContextual(SerializerProvider serializers, BeanProperty property)`
    `JsonSerializer<?>` | EnumSerializer.`createContextual(SerializerProvider serializers, BeanProperty property)` To support some level of per-property configuration, we will need to make things contextual.
    `JsonSerializer<?>` | DateTimeSerializerBase.`createContextual(SerializerProvider serializers, BeanProperty property)`
    `JsonSerializer<?>` | BooleanSerializer.`createContextual(SerializerProvider serializers, BeanProperty property)`
    `JsonSerializer<?>` | BeanSerializerBase.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | AsArraySerializerBase.`createContextual(SerializerProvider serializers, 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.
    `JsonSerializer<?>` | ArraySerializerBase.`createContextual(SerializerProvider serializers, BeanProperty property)`
    `void` | MapProperty.`depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)`
    `void` | MapProperty.`depositSchemaProperty(ObjectNode propertiesNode, SerializerProvider provider)` Deprecated.
    `protected JsonSerializer<?>` | StdSerializer.`findAnnotatedContentSerializer(SerializerProvider serializers, BeanProperty property)` Convenience method for finding out possibly configured content value serializer.
    `protected JsonSerializer<?>` | StdSerializer.`findContextualConvertingSerializer(SerializerProvider provider, BeanProperty property, 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<?>` | StdSerializer.`findConvertingContentSerializer(SerializerProvider provider, BeanProperty prop, JsonSerializer<?> existingSerializer)` Deprecated. Since 2.9 use {link `StdSerializer.findContextualConvertingSerializer(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.BeanProperty, com.fasterxml.jackson.databind.JsonSerializer<?>)` instead
    `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 Boolean` | StdSerializer.`findFormatFeature(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults, JsonFormat.Feature feat)` Convenience method that uses `StdSerializer.findFormatOverrides(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.BeanProperty, java.lang.Class<?>)` to find possible defaults and/of overrides, and then calls `JsonFormat.Value.getFeature(...)` to find whether that feature has been specifically marked as enabled or disabled.
    `protected JsonFormat.Value` | StdSerializer.`findFormatOverrides(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults)` Helper method that may be used to find if this deserializer has specific `JsonFormat` settings, either via property, or through type-specific defaulting.
    `protected JsonInclude.Value` | StdSerializer.`findIncludeOverrides(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults)`
    `protected PropertyFilter` | StdSerializer.`findPropertyFilter(SerializerProvider provider, Object filterId, Object valueToFilter)` 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` | StdJdkSerializers.AtomicBooleanSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.AtomicIntegerSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdJdkSerializers.AtomicLongSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdDelegatingSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | StdArraySerializers.BooleanArraySerializer.`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` | RawSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | NumberSerializers.Base.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | 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` | FileSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | EnumSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | DateTimeSerializerBase.`getSchema(SerializerProvider serializers, Type typeHint)`
    `JsonNode` | ClassSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | ByteArraySerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | BooleanSerializer.`getSchema(SerializerProvider provider, Type typeHint)`
    `JsonNode` | BeanSerializerBase.`getSchema(SerializerProvider provider, Type typeHint)` Deprecated.
    `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)`
    `boolean` | StdArraySerializers.BooleanArraySerializer.`isEmpty(SerializerProvider prov, boolean[] value)`
    `boolean` | ByteArraySerializer.`isEmpty(SerializerProvider prov, byte[] value)`
    `boolean` | StdArraySerializers.CharArraySerializer.`isEmpty(SerializerProvider prov, char[] value)`
    `boolean` | CollectionSerializer.`isEmpty(SerializerProvider prov, Collection<?> value)`
    `boolean` | StdArraySerializers.DoubleArraySerializer.`isEmpty(SerializerProvider prov, double[] value)`
    `boolean` | EnumSetSerializer.`isEmpty(SerializerProvider prov, EnumSet<? extends Enum<?>> value)`
    `boolean` | StdArraySerializers.FloatArraySerializer.`isEmpty(SerializerProvider prov, float[] value)`
    `boolean` | StdArraySerializers.IntArraySerializer.`isEmpty(SerializerProvider prov, int[] value)`
    `boolean` | IterableSerializer.`isEmpty(SerializerProvider prov, Iterable<?> value)`
    `boolean` | SerializableSerializer.`isEmpty(SerializerProvider serializers, JsonSerializable value)`
    `boolean` | StdArraySerializers.LongArraySerializer.`isEmpty(SerializerProvider prov, long[] value)`
    `boolean` | MapSerializer.`isEmpty(SerializerProvider prov, Map<?,?> value)`
    `boolean` | ToStringSerializer.`isEmpty(SerializerProvider prov, Object value)`
    `boolean` | StringSerializer.`isEmpty(SerializerProvider prov, Object value)`
    `boolean` | StdDelegatingSerializer.`isEmpty(SerializerProvider prov, Object value)`
    `boolean` | ObjectArraySerializer.`isEmpty(SerializerProvider prov, Object[] value)`
    `boolean` | StdArraySerializers.ShortArraySerializer.`isEmpty(SerializerProvider prov, short[] value)`
    `boolean` | StaticListSerializerBase.`isEmpty(SerializerProvider provider, T value)`
    `boolean` | ReferenceTypeSerializer.`isEmpty(SerializerProvider provider, T value)`
    `boolean` | DateTimeSerializerBase.`isEmpty(SerializerProvider serializers, T value)`
    `boolean` | UUIDSerializer.`isEmpty(SerializerProvider prov, UUID value)`
    `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 gen, SerializerProvider provider)`
    `void` | StdJdkSerializers.AtomicIntegerSerializer.`serialize(AtomicInteger value, JsonGenerator gen, SerializerProvider provider)`
    `void` | StdJdkSerializers.AtomicLongSerializer.`serialize(AtomicLong value, JsonGenerator gen, SerializerProvider provider)`
    `void` | StdArraySerializers.BooleanArraySerializer.`serialize(boolean[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | ByteArraySerializer.`serialize(byte[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | ByteBufferSerializer.`serialize(ByteBuffer bbuf, JsonGenerator gen, SerializerProvider provider)`
    `void` | CalendarSerializer.`serialize(Calendar value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdArraySerializers.CharArraySerializer.`serialize(char[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | ClassSerializer.`serialize(Class<?> value, JsonGenerator g, SerializerProvider provider)`
    `void` | CollectionSerializer.`serialize(Collection<?> value, JsonGenerator g, SerializerProvider provider)`
    `void` | SqlDateSerializer.`serialize(Date value, JsonGenerator g, SerializerProvider provider)`
    `void` | DateSerializer.`serialize(Date value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdArraySerializers.DoubleArraySerializer.`serialize(double[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | EnumSerializer.`serialize(Enum<?> en, JsonGenerator gen, SerializerProvider serializers)`
    `void` | EnumSetSerializer.`serialize(EnumSet<? extends Enum<?>> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | FileSerializer.`serialize(File value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdArraySerializers.FloatArraySerializer.`serialize(float[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | InetAddressSerializer.`serialize(InetAddress value, JsonGenerator g, SerializerProvider provider)`
    `void` | InetSocketAddressSerializer.`serialize(InetSocketAddress value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.IntArraySerializer.`serialize(int[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | IterableSerializer.`serialize(Iterable<?> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | SerializableSerializer.`serialize(JsonSerializable value, JsonGenerator gen, SerializerProvider serializers)`
    `void` | StdArraySerializers.LongArraySerializer.`serialize(long[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | MapSerializer.`serialize(Map<?,?> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NumberSerializer.`serialize(Number value, JsonGenerator g, SerializerProvider provider)`
    `void` | ObjectArraySerializer.`serialize(Object[] value, JsonGenerator gen, SerializerProvider provider)`
    `void` | ToStringSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | StringSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | StdKeySerializers.Default.`serialize(Object value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdKeySerializers.Dynamic.`serialize(Object value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdKeySerializers.StringKeySerializer.`serialize(Object value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdKeySerializers.EnumKeySerializer.`serialize(Object value, JsonGenerator g, SerializerProvider serializers)`
    `void` | StdKeySerializer.`serialize(Object value, JsonGenerator g, SerializerProvider provider)` Deprecated.
    `void` | StdDelegatingSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NumberSerializers.ShortSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NumberSerializers.IntegerSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NumberSerializers.IntLikeSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NumberSerializers.LongSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NumberSerializers.FloatSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NumberSerializers.DoubleSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | NullSerializer.`serialize(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | JsonValueSerializer.`serialize(Object bean, JsonGenerator gen, SerializerProvider prov)`
    `void` | BooleanSerializer.`serialize(Object value, JsonGenerator g, SerializerProvider provider)`
    `abstract void` | BeanSerializerBase.`serialize(Object bean, JsonGenerator gen, SerializerProvider provider)`
    `void` | StdArraySerializers.ShortArraySerializer.`serialize(short[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | SqlTimeSerializer.`serialize(Time value, JsonGenerator g, SerializerProvider provider)`
    `void` | TimeZoneSerializer.`serialize(TimeZone value, JsonGenerator g, SerializerProvider provider)`
    `abstract void` | StdSerializer.`serialize(T value, JsonGenerator gen, SerializerProvider provider)`
    `void` | ReferenceTypeSerializer.`serialize(T ref, JsonGenerator g, SerializerProvider provider)`
    `void` | RawSerializer.`serialize(T value, JsonGenerator jgen, SerializerProvider provider)`
    `abstract void` | DateTimeSerializerBase.`serialize(T value, JsonGenerator gen, SerializerProvider serializers)`
    `void` | AsArraySerializerBase.`serialize(T value, JsonGenerator gen, SerializerProvider provider)`
    `void` | ArraySerializerBase.`serialize(T value, JsonGenerator gen, SerializerProvider provider)`
    `void` | TokenBufferSerializer.`serialize(TokenBuffer value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | UUIDSerializer.`serialize(UUID value, JsonGenerator gen, SerializerProvider provider)`
    `void` | MapProperty.`serializeAsElement(Object map, JsonGenerator gen, SerializerProvider provider)`
    `void` | MapProperty.`serializeAsField(Object map, JsonGenerator gen, SerializerProvider provider)`
    `void` | MapProperty.`serializeAsOmittedField(Object map, JsonGenerator gen, SerializerProvider provider)`
    `void` | MapProperty.`serializeAsPlaceholder(Object value, JsonGenerator gen, SerializerProvider provider)`
    `void` | StdArraySerializers.BooleanArraySerializer.`serializeContents(boolean[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | CollectionSerializer.`serializeContents(Collection<?> value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdArraySerializers.DoubleArraySerializer.`serializeContents(double[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | EnumSetSerializer.`serializeContents(EnumSet<? extends Enum<?>> value, JsonGenerator gen, SerializerProvider provider)`
    `void` | StdArraySerializers.FloatArraySerializer.`serializeContents(float[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | StdArraySerializers.IntArraySerializer.`serializeContents(int[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | IterableSerializer.`serializeContents(Iterable<?> value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | StdArraySerializers.LongArraySerializer.`serializeContents(long[] value, JsonGenerator g, SerializerProvider provider)`
    `void` | ObjectArraySerializer.`serializeContents(Object[] value, JsonGenerator gen, SerializerProvider provider)`
    `void` | StdArraySerializers.ShortArraySerializer.`serializeContents(short[] value, JsonGenerator g, SerializerProvider provider)`
    `protected abstract void` | AsArraySerializerBase.`serializeContents(T value, JsonGenerator gen, SerializerProvider provider)`
    `protected abstract void` | ArraySerializerBase.`serializeContents(T value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | CollectionSerializer.`serializeContentsUsing(Collection<?> value, JsonGenerator g, SerializerProvider provider, JsonSerializer<Object> ser)`
    `void` | ObjectArraySerializer.`serializeContentsUsing(Object[] value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `void` | MapSerializer.`serializeFields(Map<?,?> value, JsonGenerator gen, SerializerProvider provider)` General-purpose serialization for contents, where we do not necessarily know the value serialization, but we do know that no value suppression is needed (which simplifies processing a bit)
    `protected void` | BeanSerializerBase.`serializeFields(Object bean, JsonGenerator gen, SerializerProvider provider)`
    `protected void` | BeanSerializerBase.`serializeFieldsFiltered(Object bean, JsonGenerator gen, SerializerProvider provider)` Alternative serialization method that gets called when there is a `PropertyFilter` that needs to be called to determine which properties are to be serialized (and possibly how)
    `void` | MapSerializer.`serializeFieldsUsing(Map<?,?> value, JsonGenerator gen, 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` | MapSerializer.`serializeFilteredAnyProperties(SerializerProvider provider, JsonGenerator gen, Object bean, Map<?,?> value, PropertyFilter filter, Object suppressableValue)` Helper method used when we have a JSON Filter to use AND contents are "any properties" of a POJO.
    `void` | MapSerializer.`serializeFilteredFields(Map<?,?> value, JsonGenerator gen, SerializerProvider provider, PropertyFilter filter, Object suppressableValue)` Helper method used when we have a JSON Filter to use for potentially filtering out Map entries.
    `void` | MapSerializer.`serializeOptionalFields(Map<?,?> value, JsonGenerator gen, SerializerProvider provider, Object suppressableValue)` Serialization method called when exclusion filtering needs to be applied.
    `void` | ObjectArraySerializer.`serializeTypedContents(Object[] value, JsonGenerator jgen, SerializerProvider provider)`
    `void` | MapSerializer.`serializeTypedFields(Map<?,?> value, JsonGenerator gen, SerializerProvider provider, Object suppressableValue)`
    `void` | ByteArraySerializer.`serializeWithType(byte[] value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | StdArraySerializers.CharArraySerializer.`serializeWithType(char[] value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | InetAddressSerializer.`serializeWithType(InetAddress value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | InetSocketAddressSerializer.`serializeWithType(InetSocketAddress value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | SerializableSerializer.`serializeWithType(JsonSerializable value, JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer)`
    `void` | MapSerializer.`serializeWithType(Map<?,?> value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | ToStringSerializer.`serializeWithType(Object value, JsonGenerator g, 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` | StringSerializer.`serializeWithType(Object value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | StdDelegatingSerializer.`serializeWithType(Object value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | NumberSerializers.IntegerSerializer.`serializeWithType(Object value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | NumberSerializers.DoubleSerializer.`serializeWithType(Object value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | NullSerializer.`serializeWithType(Object value, JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer)` Although this method should rarely get called, for convenience we should override it, and handle it same way as "natural" types: by serializing exactly as is, without type decorations.
    `void` | JsonValueSerializer.`serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer0)`
    `void` | BooleanSerializer.`serializeWithType(Object value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | BeanSerializerBase.`serializeWithType(Object bean, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | TimeZoneSerializer.`serializeWithType(TimeZone value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | StdScalarSerializer.`serializeWithType(T value, JsonGenerator g, 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.
    `abstract void` | StaticListSerializerBase.`serializeWithType(T value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | ReferenceTypeSerializer.`serializeWithType(T ref, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | RawSerializer.`serializeWithType(T value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | NonTypedScalarSerializerBase.`serializeWithType(T value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)` Deprecated.
    `void` | AsArraySerializerBase.`serializeWithType(T value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | ArraySerializerBase.`serializeWithType(T value, JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | TokenBufferSerializer.`serializeWithType(TokenBuffer value, JsonGenerator g, 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 gen, SerializerProvider provider)`
    `void` | TypeBase.`serializeWithType(JsonGenerator g, 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` | RawValue.`serialize(JsonGenerator gen, SerializerProvider serializers)`
    `void` | JSONWrappedObject.`serialize(JsonGenerator jgen, SerializerProvider provider)`
    `void` | JSONPObject.`serialize(JsonGenerator gen, SerializerProvider provider)`
    `void` | RawValue.`serializeWithType(JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer)`
    `void` | JSONWrappedObject.`serializeWithType(JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)`
    `void` | JSONPObject.`serializeWithType(JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer)`

Copyright © 2008–2018 FasterXML. All rights reserved.