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

# Class JSR310StringParsableDeserializer

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

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 JSR310StringParsableDeserializer extends com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<T> implements com.fasterxml.jackson.databind.deser.ContextualDeserializer
Deserializer for all Java 8 temporal `java.time` types that cannot be represented with numbers and that have parse functions that can take `String`s, and where format is not configurable.

Since:
  2.2
Author:
  Nick Williams, Tatu Saloranta
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 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 int`
`_typeSelector`
`static final com.fasterxml.jackson.databind.JsonDeserializer<Period>`
`PERIOD`
`protected static final int`
`TYPE_PERIOD`
`protected static final int`
`TYPE_ZONE_ID`
`protected static final int`
`TYPE_ZONE_OFFSET`
`static final com.fasterxml.jackson.databind.JsonDeserializer<ZoneId>`
`ZONE_ID`
`static final com.fasterxml.jackson.databind.JsonDeserializer<ZoneOffset>`
`ZONE_OFFSET`

### 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`
`JSR310StringParsableDeserializer(JSR310StringParsableDeserializer base, Boolean leniency)`
Since 2.11
`protected`
`JSR310StringParsableDeserializer(Class<?> supportedType, int typeSelector)`

## Method Summary

Modifier and Type
Method
Description
`protected Object`
`_failForNotLenient(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.core.JsonToken expToken)`
`protected Object`
`_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 Object`
`_fromString(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, String 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)`
`com.fasterxml.jackson.databind.JsonDeserializer<?>`
`createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property)`
`protected static <T> com.fasterxml.jackson.databind.JsonDeserializer<T>`
`createDeserializer(Class<T> type, int typeId)`
`Object`
`deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt)`
`Object`
`deserializeWithType(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.databind.jsontype.TypeDeserializer deserializer)`
`protected boolean`
`isLenient()`
`com.fasterxml.jackson.databind.type.LogicalType`
`logicalType()`
`protected JSR310StringParsableDeserializer`
`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

### TYPE_PERIOD

protected static final int TYPE_PERIOD

See Also:
  - Constant Field Values

### TYPE_ZONE_ID

protected static final int TYPE_ZONE_ID

See Also:
  - Constant Field Values

### TYPE_ZONE_OFFSET

protected static final int TYPE_ZONE_OFFSET

See Also:
  - Constant Field Values

### PERIOD

public static final com.fasterxml.jackson.databind.JsonDeserializer<Period> PERIOD

### ZONE_ID

public static final com.fasterxml.jackson.databind.JsonDeserializer<ZoneId> ZONE_ID

### ZONE_OFFSET

public static final com.fasterxml.jackson.databind.JsonDeserializer<ZoneOffset> ZONE_OFFSET

### _typeSelector

protected final int _typeSelector

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

### JSR310StringParsableDeserializer

protected JSR310StringParsableDeserializer(Class<?> supportedType, int typeSelector)

### JSR310StringParsableDeserializer

protected JSR310StringParsableDeserializer(JSR310StringParsableDeserializer base, Boolean leniency)
Since 2.11

## Method Details

### createDeserializer

protected static <T> com.fasterxml.jackson.databind.JsonDeserializer<T> createDeserializer(Class<T> type, int typeId)

### withLeniency

protected JSR310StringParsableDeserializer withLeniency(Boolean leniency)

### 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 Object deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws IOException

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

### deserializeWithType

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

Throws:
  `IOException`

### _fromString

protected Object _fromString(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, String string) 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 Object _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>`

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