Package com.fasterxml.jackson.datatype.jsr310.deser

# Class JSR310DateTimeDeserializerBase<T>

java.lang.Object
com.fasterxml.jackson.databind.JsonDeserializer<T>
com.fasterxml.jackson.databind.deser.std.StdDeserializer<T>
com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<T>
com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase<T>

All Implemented Interfaces:
  `com.fasterxml.jackson.databind.deser.ContextualDeserializer`, `com.fasterxml.jackson.databind.deser.NullValueProvider`, `com.fasterxml.jackson.databind.deser.ValueInstantiator.Gettable`, `Serializable`

Direct Known Subclasses:
  `InstantDeserializer`, `LocalDateDeserializer`, `LocalDateTimeDeserializer`, `LocalTimeDeserializer`, `MonthDayDeserializer`, `OffsetTimeDeserializer`, `YearDeserializer`, `YearMonthDeserializer`

public abstract class JSR310DateTimeDeserializerBase<T> extends com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<T> implements com.fasterxml.jackson.databind.deser.ContextualDeserializer

See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonDeserializer

`com.fasterxml.jackson.databind.JsonDeserializer.None`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final DateTimeFormatter`
`_formatter`
`protected final boolean`
`_isLenient`
Flag that indicates what leniency setting is enabled for this deserializer (either due `JsonFormat.Shape` annotation on property or class, or due to per-type "config override", or from global settings): leniency/strictness has effect on accepting some non-default input value representations (such as integer values for dates).
`protected final com.fasterxml.jackson.annotation.JsonFormat.Shape`
`_shape`
Setting that indicates the specified for this deserializer as a `JsonFormat.Shape` annotation on property or class, or due to per-type "config override", or from global settings: If Shape is NUMBER_INT, the input value is considered to be epoch days.

### Fields inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

`_valueClass, _valueType, F_MASK_ACCEPT_ARRAYS, F_MASK_INT_COERCIONS`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`JSR310DateTimeDeserializerBase(JSR310DateTimeDeserializerBase<T> base, com.fasterxml.jackson.annotation.JsonFormat.Shape shape)`
`protected`
`JSR310DateTimeDeserializerBase(JSR310DateTimeDeserializerBase<T> base, Boolean leniency)`
`protected`
`JSR310DateTimeDeserializerBase(JSR310DateTimeDeserializerBase<T> base, DateTimeFormatter f)`
`protected`
`JSR310DateTimeDeserializerBase(Class<T> supportedType, DateTimeFormatter f)`
``
`JSR310DateTimeDeserializerBase(Class<T> supportedType, DateTimeFormatter f, Boolean leniency)`

## Method Summary

Modifier and Type
Method
Description
`protected T`
`_failForNotLenient(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.core.JsonToken expToken)`
`protected T`
`_fromEmptyString(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, String str)`
Replacement for `isLenient()` for specific case of deserialization from empty or blank String.
`protected <R> R`
`_handleDateTimeException(com.fasterxml.jackson.databind.DeserializationContext context, DateTimeException e0, String value)`
`protected <R> R`
`_handleUnexpectedToken(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.core.JsonToken... expTypes)`
`protected <R> R`
`_handleUnexpectedToken(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, String message, Object... args)`
`protected boolean`
`_isValidTimestampString(String str)`
`protected DateTimeException`
`_peelDTE(DateTimeException e)`
Helper method used to peel off spurious wrappings of DateTimeException
`protected <BOGUS> BOGUS`
`_reportWrongToken(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonToken... expTypes)`
`protected <BOGUS> BOGUS`
`_reportWrongToken(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonToken exp, String unit)`
`protected void`
`_throwNoNumericTimestampNeedTimeZone(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)`
`protected JSR310DateTimeDeserializerBase<?>`
`_withFormatOverrides(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.annotation.JsonFormat.Value formatOverrides)`
`com.fasterxml.jackson.databind.JsonDeserializer<?>`
`createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property)`
`Object`
`deserializeWithType(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer)`
`protected boolean`
`isLenient()`
`com.fasterxml.jackson.databind.type.LogicalType`
`logicalType()`
`protected abstract JSR310DateTimeDeserializerBase<T>`
`withDateFormat(DateTimeFormatter dtf)`
`protected abstract JSR310DateTimeDeserializerBase<T>`
`withLeniency(Boolean leniency)`
`protected abstract JSR310DateTimeDeserializerBase<T>`
`withShape(com.fasterxml.jackson.annotation.JsonFormat.Shape shape)`

### Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer

`deserialize, getEmptyAccessPattern, getNullAccessPattern, supportsUpdate`

### Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

`_byteOverflow, _checkBooleanToStringCoercion, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFloatToStringCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkIntToFloatCoercion, _checkIntToStringCoercion, _checkTextualNull, _checkToStringCoercion, _coerceBooleanFromInt, _coercedTypeDesc, _coerceEmptyString, _coerceIntegral, _coerceNullToken, _coerceTextualNull, _deserializeFromArray, _deserializeFromEmpty, _deserializeFromEmptyString, _deserializeFromString, _deserializeWrappedValue, _failDoubleToIntCoercion, _findCoercionFromBlankString, _findCoercionFromEmptyArray, _findCoercionFromEmptyString, _findNullProvider, _hasTextualNull, _intOverflow, _isBlank, _isEmptyOrTextualNull, _isFalse, _isIntNumber, _isNaN, _isNegInf, _isPosInf, _isTrue, _neitherNull, _nonNullNumber, _parseBoolean, _parseBooleanFromInt, _parseBooleanPrimitive, _parseBooleanPrimitive, _parseBytePrimitive, _parseDate, _parseDate, _parseDateFromArray, _parseDouble, _parseDouble, _parseDoublePrimitive, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseInteger, _parseInteger, _parseIntPrimitive, _parseIntPrimitive, _parseLong, _parseLong, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, _verifyNullForScalarCoercion, _verifyNumberForScalarCoercion, _verifyStringForScalarCoercion, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueClass, getValueInstantiator, getValueType, getValueType, handledType, handleMissingEndArrayForSingle, handleNestedArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer`

### Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer

`deserialize, deserializeWithType, findBackReference, getAbsentValue, getDelegatee, getEmptyValue, getEmptyValue, getKnownPropertyNames, getNullValue, getNullValue, getObjectIdReader, isCachable, replaceDelegatee, unwrappingDeserializer`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### _formatter

protected final DateTimeFormatter _formatter

### _shape

protected final com.fasterxml.jackson.annotation.JsonFormat.Shape _shape
Setting that indicates the specified for this deserializer as a `JsonFormat.Shape` annotation on property or class, or due to per-type "config override", or from global settings: If Shape is NUMBER_INT, the input value is considered to be epoch days. If not a NUMBER_INT, and the deserializer was not specified with the leniency setting of true, then an exception will be thrown.

Since:
  2.11

### _isLenient

protected final boolean _isLenient
Flag that indicates what leniency setting is enabled for this deserializer (either due `JsonFormat.Shape` annotation on property or class, or due to per-type "config override", or from global settings): leniency/strictness has effect on accepting some non-default input value representations (such as integer values for dates).

Note that global default setting is for leniency to be enabled, for Jackson 2.x, and has to be explicitly change to force strict handling: this is to keep backwards compatibility with earlier versions.

Note that with 2.12 and later coercion settings are moving to `CoercionConfig`, instead of simple yes/no leniency setting.

Since:
  2.11

## Constructor Details

### JSR310DateTimeDeserializerBase

protected JSR310DateTimeDeserializerBase(Class<T> supportedType, DateTimeFormatter f)

### JSR310DateTimeDeserializerBase

public JSR310DateTimeDeserializerBase(Class<T> supportedType, DateTimeFormatter f, Boolean leniency)

Since:
  2.11

### JSR310DateTimeDeserializerBase

protected JSR310DateTimeDeserializerBase(JSR310DateTimeDeserializerBase<T> base, DateTimeFormatter f)

Since:
  2.10

### JSR310DateTimeDeserializerBase

protected JSR310DateTimeDeserializerBase(JSR310DateTimeDeserializerBase<T> base, Boolean leniency)

Since:
  2.10

### JSR310DateTimeDeserializerBase

protected JSR310DateTimeDeserializerBase(JSR310DateTimeDeserializerBase<T> base, com.fasterxml.jackson.annotation.JsonFormat.Shape shape)

Since:
  2.11

## Method Details

### withDateFormat

protected abstract JSR310DateTimeDeserializerBase<T> withDateFormat(DateTimeFormatter dtf)

### withLeniency

protected abstract JSR310DateTimeDeserializerBase<T> withLeniency(Boolean leniency)

Since:
  2.10

### withShape

protected abstract JSR310DateTimeDeserializerBase<T> withShape(com.fasterxml.jackson.annotation.JsonFormat.Shape shape)

Since:
  2.11

### createContextual

public com.fasterxml.jackson.databind.JsonDeserializer<?> createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property) throws com.fasterxml.jackson.databind.JsonMappingException

Specified by:
  `createContextual` in interface `com.fasterxml.jackson.databind.deser.ContextualDeserializer`
Throws:
  `com.fasterxml.jackson.databind.JsonMappingException`

### _withFormatOverrides

protected JSR310DateTimeDeserializerBase<?> _withFormatOverrides(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.annotation.JsonFormat.Value formatOverrides)

Parameters:
  `ctxt` - Active deserialization context
  `property` - (optional) Property on which this deserializer is used, or `null` for root value
  `formatOverrides` - Format overrides to use (non-null)
Returns:
  Either this deserializer as is, or newly constructed variant if created for different configuration
Since:
  2.12.1

### _throwNoNumericTimestampNeedTimeZone

protected void _throwNoNumericTimestampNeedTimeZone(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws IOException

Throws:
  `IOException`

### isLenient

protected boolean isLenient()

Returns:
  `true` if lenient handling is enabled; {code false} if not (strict mode)
Since:
  2.11

### _fromEmptyString

protected T _fromEmptyString(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, String str) throws IOException
Replacement for `isLenient()` for specific case of deserialization from empty or blank String.

Throws:
  `IOException`
Since:
  2.12

### logicalType

public com.fasterxml.jackson.databind.type.LogicalType logicalType()

Overrides:
  `logicalType` in class `com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<T>`

### deserializeWithType

public Object deserializeWithType(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer) throws IOException

Overrides:
  `deserializeWithType` in class `com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<T>`
Throws:
  `IOException`

### _isValidTimestampString

protected boolean _isValidTimestampString(String str)

### _reportWrongToken

protected <BOGUS> BOGUS _reportWrongToken(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonToken exp, String unit) throws IOException

Throws:
  `IOException`

### _reportWrongToken

protected <BOGUS> BOGUS _reportWrongToken(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonToken... expTypes) throws IOException

Throws:
  `IOException`

### _handleDateTimeException

protected <R> R _handleDateTimeException(com.fasterxml.jackson.databind.DeserializationContext context, DateTimeException e0, String value) throws com.fasterxml.jackson.databind.JsonMappingException

Throws:
  `com.fasterxml.jackson.databind.JsonMappingException`

### _handleUnexpectedToken

protected <R> R _handleUnexpectedToken(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, String message, Object... args) throws com.fasterxml.jackson.databind.JsonMappingException

Throws:
  `com.fasterxml.jackson.databind.JsonMappingException`

### _handleUnexpectedToken

protected <R> R _handleUnexpectedToken(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.core.JsonToken... expTypes) throws com.fasterxml.jackson.databind.JsonMappingException

Throws:
  `com.fasterxml.jackson.databind.JsonMappingException`

### _failForNotLenient

protected T _failForNotLenient(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.core.JsonToken expToken) throws IOException

Throws:
  `IOException`

### _peelDTE

protected DateTimeException _peelDTE(DateTimeException e)
Helper method used to peel off spurious wrappings of DateTimeException

Parameters:
  `e` - DateTimeException to peel
Returns:
  DateTimeException that does not have another DateTimeException as its cause.