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

    Modifier and Type
    Method
    Description
    default Object
    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.
    Accessor that may be used to determine if and when provider must be called to access null replacement value.
    Method called to possibly convert incoming `null` token (read via underlying streaming input source) into other value of type accessor supports.
  • Method Details

    • getNullValue

      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(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(DeserializationContext).

      Throws:
      JsonMappingException
      Since:
      2.13