com.fasterxml.jackson.databind.deser

## Interface NullValueProvider

All Known Implementing Classes:
  AbstractDeserializer, ArrayBlockingQueueDeserializer, AtomicBooleanDeserializer, AtomicIntegerDeserializer, AtomicLongDeserializer, AtomicReferenceDeserializer, BeanAsArrayBuilderDeserializer, BeanAsArrayDeserializer, BeanDeserializer, BeanDeserializerBase, BuilderBasedDeserializer, ByteBufferDeserializer, CollectionDeserializer, ContainerDeserializerBase, CoreXMLDeserializers.Std, DateDeserializers.CalendarDeserializer, DateDeserializers.DateBasedDeserializer, DateDeserializers.DateDeserializer, DateDeserializers.SqlDateDeserializer, DateDeserializers.TimestampDeserializer, DelegatingDeserializer, DOMDeserializer, DOMDeserializer.DocumentDeserializer, DOMDeserializer.NodeDeserializer, EnumDeserializer, EnumMapDeserializer, EnumSetDeserializer, ErrorThrowingDeserializer, FailingDeserializer, FromStringDeserializer, FromStringDeserializer.Std, JsonDeserializer, JsonDeserializer.None, JsonNodeDeserializer, MapDeserializer, MapEntryDeserializer, NioPathDeserializer, NullifyingDeserializer, NullsAsEmptyProvider, NullsConstantProvider, NullsFailProvider, NumberDeserializers.BigDecimalDeserializer, NumberDeserializers.BigIntegerDeserializer, NumberDeserializers.BooleanDeserializer, NumberDeserializers.ByteDeserializer, NumberDeserializers.CharacterDeserializer, NumberDeserializers.DoubleDeserializer, NumberDeserializers.FloatDeserializer, NumberDeserializers.IntegerDeserializer, NumberDeserializers.LongDeserializer, NumberDeserializers.NumberDeserializer, NumberDeserializers.PrimitiveOrWrapperDeserializer, NumberDeserializers.ShortDeserializer, ObjectArrayDeserializer, PrimitiveArrayDeserializers, ReferenceTypeDeserializer, StackTraceElementDeserializer, StdDelegatingDeserializer, StdDeserializer, StdNodeBasedDeserializer, StdScalarDeserializer, StringArrayDeserializer, StringCollectionDeserializer, StringDeserializer, ThrowableDeserializer, TokenBufferDeserializer, TypeWrappedDeserializer, UnsupportedTypeDeserializer, UntypedObjectDeserializer, UntypedObjectDeserializer.Vanilla, UUIDDeserializer

    public interface NullValueProvider

Helper interface implemented by classes that are to be used as null providers during deserialization. Most importantly implemented by `JsonDeserializer` (as a mix-in interface), but also by converters used to support more configurable null replacement.

Since:
  2.9

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`default Object` `getAbsentValue(DeserializationContext ctxt)` Method called to determine placeholder value to be used for cases where no value was obtained from input but we must pass a value nonetheless: the common case is that of Creator methods requiring passing a value for every parameter.
`AccessPattern` `getNullAccessPattern()` Accessor that may be used to determine if and when provider must be called to access null replacement value.
`Object` `getNullValue(DeserializationContext ctxt)` Method called to possibly convert incoming `null` token (read via underlying streaming input source) into other value of type accessor supports.

### Method Detail

#### getNullValue

    Object getNullValue(DeserializationContext ctxt)
                 throws JsonMappingException

Method called to possibly convert incoming `null` token (read via underlying streaming input source) into other value of type accessor supports. May return `null`, or value compatible with type binding.

NOTE: if `getNullAccessPattern()` returns `ALWAYS_NULL` or `CONSTANT`, this method WILL NOT use provided `ctxt` and it may thus be passed as `null`.

Throws:
  `JsonMappingException`

#### getNullAccessPattern

    AccessPattern getNullAccessPattern()

Accessor that may be used to determine if and when provider must be called to access null replacement value.

#### getAbsentValue

    default Object getAbsentValue(DeserializationContext ctxt)
                           throws JsonMappingException

Method called to determine placeholder value to be used for cases where no value was obtained from input but we must pass a value nonetheless: the common case is that of Creator methods requiring passing a value for every parameter. Usually this is same as `getNullValue(com.fasterxml.jackson.databind.DeserializationContext)` (which in turn is usually simply Java `null`), but it can be overridden for specific types: most notable scalar types must use "default" values.

This method needs to be called every time a determination is made.

Default implementation simply calls and returns `getNullValue(com.fasterxml.jackson.databind.DeserializationContext)`.

Throws:
  `JsonMappingException`
Since:
  2.13