Class InstantDeserializer<T extends Temporal>
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.JSR310DeserializerBase<T>
com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase<T>
com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer<T>
- All Implemented Interfaces:
com.fasterxml.jackson.databind.deser.ContextualDeserializer
,com.fasterxml.jackson.databind.deser.NullValueProvider
,com.fasterxml.jackson.databind.deser.ValueInstantiator.Gettable
,Serializable
- Since:
- 2.2
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonDeserializer
com.fasterxml.jackson.databind.JsonDeserializer.None
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Boolean
Flag forJsonFormat.Feature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE
protected final boolean
Flag set fromJavaTimeFeature.ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS
to determine whether stringified numbers are interpreted as timestamps (enabled) nor not (disabled) in addition to a custom pattern ({code DateTimeFormatter}).protected final boolean
Flag set fromJavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_ID
to determine whetherZoneId
is to be normalized during deserialization.protected final Boolean
Flag forJsonFormat.Feature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS
protected final BiFunction
<T, ZoneId, T> private static final boolean
private static final boolean
protected final Function
<InstantDeserializer.FromIntegerArguments, T> protected final Function
<InstantDeserializer.FromDecimalArguments, T> static final InstantDeserializer
<Instant> protected static final Pattern
Constants used to check if ISO 8601 time string is colon-less.static final InstantDeserializer
<OffsetDateTime> protected final Function
<TemporalAccessor, T> protected final boolean
In case of vanilla `Instant` we seem to need to translate "+0000 | +00:00 | +00" timezone designator into plain "Z" for some reason; see [jackson-modules-java8#18] for more infoprivate static final long
static final InstantDeserializer
<ZonedDateTime> Fields inherited from class com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase
_formatter, _shape
Fields inherited from class com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBase
_isLenient
Fields inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer
_valueClass, _valueType, F_MASK_ACCEPT_ARRAYS, F_MASK_INT_COERCIONS
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
InstantDeserializer
(InstantDeserializer<T> base, com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features) protected
InstantDeserializer
(InstantDeserializer<T> base, Boolean adjustToContextTimezoneOverride) protected
InstantDeserializer
(InstantDeserializer<T> base, Boolean leniency, DateTimeFormatter formatter, com.fasterxml.jackson.annotation.JsonFormat.Shape shape, Boolean adjustToContextTimezoneOverride, Boolean readTimestampsAsNanosOverride) protected
protected
InstantDeserializer
(InstantDeserializer<T> base, DateTimeFormatter f, Boolean leniency) protected
InstantDeserializer
(Class<T> supportedType, DateTimeFormatter formatter, Function<TemporalAccessor, T> parsedToValue, Function<InstantDeserializer.FromIntegerArguments, T> fromMilliseconds, Function<InstantDeserializer.FromDecimalArguments, T> fromNanoseconds, BiFunction<T, ZoneId, T> adjust, boolean replaceZeroOffsetAsZ) Deprecated.protected
InstantDeserializer
(Class<T> supportedType, DateTimeFormatter formatter, Function<TemporalAccessor, T> parsedToValue, Function<InstantDeserializer.FromIntegerArguments, T> fromMilliseconds, Function<InstantDeserializer.FromDecimalArguments, T> fromNanoseconds, BiFunction<T, ZoneId, T> adjust, boolean replaceZeroOffsetAsZ, boolean normalizeZoneId, boolean readNumericStringsAsTimestamp) -
Method Summary
Modifier and TypeMethodDescriptionprotected int
_countPeriods
(String str) protected T
_fromDecimal
(com.fasterxml.jackson.databind.DeserializationContext context, BigDecimal value) protected T
_fromLong
(com.fasterxml.jackson.databind.DeserializationContext context, long timestamp) protected T
_fromString
(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, String string0) protected JSR310DateTimeDeserializerBase
<?> _withFormatOverrides
(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.annotation.JsonFormat.Value formatOverrides) private String
private static OffsetDateTime
deserialize
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context) private ZoneId
getZone
(com.fasterxml.jackson.databind.DeserializationContext context) private static String
replaceZeroOffsetAsZ
(String text) private String
protected boolean
shouldAdjustToContextTimezone
(com.fasterxml.jackson.databind.DeserializationContext context) protected boolean
shouldReadTimestampsAsNanoseconds
(com.fasterxml.jackson.databind.DeserializationContext context) protected InstantDeserializer
<T> withFeatures
(com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features) protected InstantDeserializer
<T> withLeniency
(Boolean leniency) Methods inherited from class com.fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase
_throwNoNumericTimestampNeedTimeZone, createContextual, withShape
Methods inherited from class com.fasterxml.jackson.datatype.jsr310.deser.JSR310DeserializerBase
_failForNotLenient, _fromEmptyString, _handleDateTimeException, _handleUnexpectedToken, _handleUnexpectedToken, _isValidTimestampString, _peelDTE, _reportWrongToken, _reportWrongToken, deserializeWithType, isLenient, logicalType
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, _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
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
DEFAULT_NORMALIZE_ZONE_ID
private static final boolean DEFAULT_NORMALIZE_ZONE_ID -
DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS
private static final boolean DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS -
ISO8601_COLONLESS_OFFSET_REGEX
Constants used to check if ISO 8601 time string is colon-less. See [jackson-modules-java8#131]- Since:
- 2.13
-
INSTANT
-
OFFSET_DATE_TIME
-
ZONED_DATE_TIME
-
fromMilliseconds
protected final Function<InstantDeserializer.FromIntegerArguments,T extends Temporal> fromMilliseconds -
fromNanoseconds
protected final Function<InstantDeserializer.FromDecimalArguments,T extends Temporal> fromNanoseconds -
parsedToValue
-
adjust
-
replaceZeroOffsetAsZ
protected final boolean replaceZeroOffsetAsZIn case of vanilla `Instant` we seem to need to translate "+0000 | +00:00 | +00" timezone designator into plain "Z" for some reason; see [jackson-modules-java8#18] for more info- Since:
- 2.9.0
-
_adjustToContextTZOverride
Flag forJsonFormat.Feature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE
- Since:
- 2.8
-
_readTimestampsAsNanosOverride
Flag forJsonFormat.Feature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS
- Since:
- 2.16
-
_normalizeZoneId
protected final boolean _normalizeZoneIdFlag set fromJavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_ID
to determine whetherZoneId
is to be normalized during deserialization.- Since:
- 2.16
-
_alwaysAllowStringifiedDateTimestamps
protected final boolean _alwaysAllowStringifiedDateTimestampsFlag set fromJavaTimeFeature.ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS
to determine whether stringified numbers are interpreted as timestamps (enabled) nor not (disabled) in addition to a custom pattern ({code DateTimeFormatter}).NOTE: stringified timestamps are always allowed with default patterns; this flag only affects handling of custom patterns.
- Since:
- 2.16
-
-
Constructor Details
-
InstantDeserializer
protected InstantDeserializer(Class<T> supportedType, DateTimeFormatter formatter, Function<TemporalAccessor, T> parsedToValue, Function<InstantDeserializer.FromIntegerArguments, T> fromMilliseconds, Function<InstantDeserializer.FromDecimalArguments, T> fromNanoseconds, BiFunction<T, ZoneId, T> adjust, boolean replaceZeroOffsetAsZ, boolean normalizeZoneId, boolean readNumericStringsAsTimestamp) - Since:
- 2.16
-
InstantDeserializer
@Deprecated protected InstantDeserializer(Class<T> supportedType, DateTimeFormatter formatter, Function<TemporalAccessor, T> parsedToValue, Function<InstantDeserializer.FromIntegerArguments, T> fromMilliseconds, Function<InstantDeserializer.FromDecimalArguments, T> fromNanoseconds, BiFunction<T, ZoneId, T> adjust, boolean replaceZeroOffsetAsZ) Deprecated. -
InstantDeserializer
-
InstantDeserializer
-
InstantDeserializer
-
InstantDeserializer
protected InstantDeserializer(InstantDeserializer<T> base, Boolean leniency, DateTimeFormatter formatter, com.fasterxml.jackson.annotation.JsonFormat.Shape shape, Boolean adjustToContextTimezoneOverride, Boolean readTimestampsAsNanosOverride) - Since:
- 2.16
-
InstantDeserializer
protected InstantDeserializer(InstantDeserializer<T> base, com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features) - Since:
- 2.16
-
-
Method Details
-
decimalToOffsetDateTime
private static OffsetDateTime decimalToOffsetDateTime(InstantDeserializer.FromDecimalArguments args) -
withDateFormat
- Specified by:
withDateFormat
in classJSR310DateTimeDeserializerBase<T extends Temporal>
-
withLeniency
- Specified by:
withLeniency
in classJSR310DateTimeDeserializerBase<T extends Temporal>
-
withFeatures
public InstantDeserializer<T> withFeatures(com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features) -
_withFormatOverrides
protected JSR310DateTimeDeserializerBase<?> _withFormatOverrides(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.annotation.JsonFormat.Value formatOverrides) - Overrides:
_withFormatOverrides
in classJSR310DateTimeDeserializerBase<T extends Temporal>
- Parameters:
ctxt
- Active deserialization contextproperty
- (optional) Property on which this deserializer is used, ornull
for root valueformatOverrides
- Format overrides to use (non-null)- Returns:
- Either this deserializer as is, or newly constructed variant if created for different configuration
-
deserialize
public T deserialize(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context) throws IOException - Specified by:
deserialize
in classcom.fasterxml.jackson.databind.JsonDeserializer<T extends Temporal>
- Throws:
IOException
-
shouldAdjustToContextTimezone
protected boolean shouldAdjustToContextTimezone(com.fasterxml.jackson.databind.DeserializationContext context) -
shouldReadTimestampsAsNanoseconds
protected boolean shouldReadTimestampsAsNanoseconds(com.fasterxml.jackson.databind.DeserializationContext context) -
_countPeriods
-
_fromString
protected T _fromString(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, String string0) throws IOException - Throws:
IOException
-
_fromLong
protected T _fromLong(com.fasterxml.jackson.databind.DeserializationContext context, long timestamp) -
_fromDecimal
protected T _fromDecimal(com.fasterxml.jackson.databind.DeserializationContext context, BigDecimal value) -
getZone
-
replaceZeroOffsetAsZIfNecessary
-
replaceZeroOffsetAsZ
-
addInColonToOffsetIfMissing
-
InstantDeserializer(Class,DateTimeFormatter, Function,Function,Function,BiFunction,boolean,boolean,boolean)
instead.