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

# Class DurationDeserializer

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.DurationDeserializer

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

public class DurationDeserializer extends com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<T> implements com.fasterxml.jackson.databind.deser.ContextualDeserializer
Deserializer for Java 8 temporal `Duration`s.

Since:
  2.2
Author:
  Nick Williams
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 DurationUnitConverter`
`_durationUnitConverter`
When defined (not `null`) integer values will be converted into duration unit configured for the converter.
`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).
`static final DurationDeserializer`
`INSTANCE`

### 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
``
`DurationDeserializer()`
`protected`
`DurationDeserializer(DurationDeserializer base, DurationUnitConverter converter)`
`protected`
`DurationDeserializer(DurationDeserializer base, Boolean leniency)`

## Method Summary

Modifier and Type
Method
Description
`protected Duration`
`_failForNotLenient(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.core.JsonToken expToken)`
`protected Duration`
`_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 Duration`
`_fromString(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext ctxt, String value0)`
`protected Duration`
`_fromTimestamp(com.fasterxml.jackson.databind.DeserializationContext ctxt, long ts)`
`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)`
`com.fasterxml.jackson.databind.JsonDeserializer<?>`
`createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property)`
`Duration`
`deserialize(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context)`
`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 DurationDeserializer`
`withConverter(DurationUnitConverter converter)`
`protected DurationDeserializer`
`withLeniency(Boolean leniency)`

### 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

`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

### INSTANCE

public static final DurationDeserializer INSTANCE

### _durationUnitConverter

protected final DurationUnitConverter _durationUnitConverter
When defined (not `null`) integer values will be converted into duration unit configured for the converter. Using this converter will typically override the value specified in `DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS` as it is considered that the unit set in `JsonFormat.pattern()` has precedence since it is more specific.

See [jackson-modules-java8#184] for more info.

Since:
  2.12

### _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

### DurationDeserializer

public DurationDeserializer()

### DurationDeserializer

protected DurationDeserializer(DurationDeserializer base, Boolean leniency)

Since:
  2.11

### DurationDeserializer

protected DurationDeserializer(DurationDeserializer base, DurationUnitConverter converter)

Since:
  2.12

## Method Details

### withLeniency

protected DurationDeserializer withLeniency(Boolean leniency)

### withConverter

protected DurationDeserializer withConverter(DurationUnitConverter converter)

### 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`

### deserialize

public Duration deserialize(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context) throws IOException

Specified by:
  `deserialize` in class `com.fasterxml.jackson.databind.JsonDeserializer<Duration>`
Throws:
  `IOException`

### _fromString

protected Duration _fromString(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext ctxt, String value0) throws IOException

Throws:
  `IOException`

### _fromTimestamp

protected Duration _fromTimestamp(com.fasterxml.jackson.databind.DeserializationContext ctxt, long ts)

### isLenient

protected boolean isLenient()

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

### _fromEmptyString

protected Duration _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 Duration _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.