Class InstantDeserializer<T extends java.time.temporal.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
,java.io.Serializable
public class InstantDeserializer<T extends java.time.temporal.Temporal> extends JSR310DateTimeDeserializerBase<T>
Deserializer for Java 8 temporalInstant
s,OffsetDateTime
, andZonedDateTime
s.- Since:
- 2.2
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
InstantDeserializer.FromDecimalArguments
static class
InstantDeserializer.FromIntegerArguments
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Boolean
_adjustToContextTZOverride
Flag forJsonFormat.Feature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE
protected boolean
_alwaysAllowStringifiedDateTimestamps
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 boolean
_normalizeZoneId
Flag set fromJavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_ID
to determine whetherZoneId
is to be normalized during deserialization.protected java.lang.Boolean
_readTimestampsAsNanosOverride
Flag forJsonFormat.Feature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS
protected java.util.function.BiFunction<T,java.time.ZoneId,T>
adjust
private static boolean
DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS
private static boolean
DEFAULT_NORMALIZE_ZONE_ID
protected java.util.function.Function<InstantDeserializer.FromIntegerArguments,T>
fromMilliseconds
protected java.util.function.Function<InstantDeserializer.FromDecimalArguments,T>
fromNanoseconds
static InstantDeserializer<java.time.Instant>
INSTANT
protected static java.util.regex.Pattern
ISO8601_COLONLESS_OFFSET_REGEX
Constants used to check if ISO 8601 time string is colonless.static InstantDeserializer<java.time.OffsetDateTime>
OFFSET_DATE_TIME
protected java.util.function.Function<java.time.temporal.TemporalAccessor,T>
parsedToValue
protected boolean
replaceZeroOffsetAsZ
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 long
serialVersionUID
static InstantDeserializer<java.time.ZonedDateTime>
ZONED_DATE_TIME
-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
InstantDeserializer(InstantDeserializer<T> base, com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features)
protected
InstantDeserializer(InstantDeserializer<T> base, java.lang.Boolean adjustToContextTimezoneOverride)
protected
InstantDeserializer(InstantDeserializer<T> base, java.lang.Boolean leniency, java.time.format.DateTimeFormatter formatter, com.fasterxml.jackson.annotation.JsonFormat.Shape shape, java.lang.Boolean adjustToContextTimezoneOverride, java.lang.Boolean readTimestampsAsNanosOverride)
protected
InstantDeserializer(InstantDeserializer<T> base, java.time.format.DateTimeFormatter f)
protected
InstantDeserializer(InstantDeserializer<T> base, java.time.format.DateTimeFormatter f, java.lang.Boolean leniency)
protected
InstantDeserializer(java.lang.Class<T> supportedType, java.time.format.DateTimeFormatter formatter, java.util.function.Function<java.time.temporal.TemporalAccessor,T> parsedToValue, java.util.function.Function<InstantDeserializer.FromIntegerArguments,T> fromMilliseconds, java.util.function.Function<InstantDeserializer.FromDecimalArguments,T> fromNanoseconds, java.util.function.BiFunction<T,java.time.ZoneId,T> adjust, boolean replaceZeroOffsetAsZ)
Deprecated.protected
InstantDeserializer(java.lang.Class<T> supportedType, java.time.format.DateTimeFormatter formatter, java.util.function.Function<java.time.temporal.TemporalAccessor,T> parsedToValue, java.util.function.Function<InstantDeserializer.FromIntegerArguments,T> fromMilliseconds, java.util.function.Function<InstantDeserializer.FromDecimalArguments,T> fromNanoseconds, java.util.function.BiFunction<T,java.time.ZoneId,T> adjust, boolean replaceZeroOffsetAsZ, boolean normalizeZoneId, boolean readNumericStringsAsTimestamp)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
_countPeriods(java.lang.String str)
protected T
_fromDecimal(com.fasterxml.jackson.databind.DeserializationContext context, java.math.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, java.lang.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 java.lang.String
addInColonToOffsetIfMissing(java.lang.String text)
T
deserialize(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context)
private java.time.ZoneId
getZone(com.fasterxml.jackson.databind.DeserializationContext context)
private static java.lang.String
replaceZeroOffsetAsZ(java.lang.String text)
private java.lang.String
replaceZeroOffsetAsZIfNecessary(java.lang.String text)
protected boolean
shouldAdjustToContextTimezone(com.fasterxml.jackson.databind.DeserializationContext context)
protected boolean
shouldReadTimestampsAsNanoseconds(com.fasterxml.jackson.databind.DeserializationContext context)
protected InstantDeserializer<T>
withDateFormat(java.time.format.DateTimeFormatter dtf)
InstantDeserializer<T>
withFeatures(com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features)
protected InstantDeserializer<T>
withLeniency(java.lang.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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
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
protected static final java.util.regex.Pattern ISO8601_COLONLESS_OFFSET_REGEX
Constants used to check if ISO 8601 time string is colonless. See [jackson-modules-java8#131]- Since:
- 2.13
-
INSTANT
public static final InstantDeserializer<java.time.Instant> INSTANT
-
OFFSET_DATE_TIME
public static final InstantDeserializer<java.time.OffsetDateTime> OFFSET_DATE_TIME
-
ZONED_DATE_TIME
public static final InstantDeserializer<java.time.ZonedDateTime> ZONED_DATE_TIME
-
fromMilliseconds
protected final java.util.function.Function<InstantDeserializer.FromIntegerArguments,T extends java.time.temporal.Temporal> fromMilliseconds
-
fromNanoseconds
protected final java.util.function.Function<InstantDeserializer.FromDecimalArguments,T extends java.time.temporal.Temporal> fromNanoseconds
-
parsedToValue
protected final java.util.function.Function<java.time.temporal.TemporalAccessor,T extends java.time.temporal.Temporal> parsedToValue
-
adjust
protected final java.util.function.BiFunction<T extends java.time.temporal.Temporal,java.time.ZoneId,T extends java.time.temporal.Temporal> adjust
-
replaceZeroOffsetAsZ
protected final boolean replaceZeroOffsetAsZ
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 info- Since:
- 2.9.0
-
_adjustToContextTZOverride
protected final java.lang.Boolean _adjustToContextTZOverride
Flag forJsonFormat.Feature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE
- Since:
- 2.8
-
_readTimestampsAsNanosOverride
protected final java.lang.Boolean _readTimestampsAsNanosOverride
Flag forJsonFormat.Feature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS
- Since:
- 2.16
-
_normalizeZoneId
protected final boolean _normalizeZoneId
Flag set fromJavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_ID
to determine whetherZoneId
is to be normalized during deserialization.- Since:
- 2.16
-
_alwaysAllowStringifiedDateTimestamps
protected final boolean _alwaysAllowStringifiedDateTimestamps
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}).NOTE: stringified timestamps are always allowed with default patterns; this flag only affects handling of custom patterns.
- Since:
- 2.16
-
-
Constructor Detail
-
InstantDeserializer
protected InstantDeserializer(java.lang.Class<T> supportedType, java.time.format.DateTimeFormatter formatter, java.util.function.Function<java.time.temporal.TemporalAccessor,T> parsedToValue, java.util.function.Function<InstantDeserializer.FromIntegerArguments,T> fromMilliseconds, java.util.function.Function<InstantDeserializer.FromDecimalArguments,T> fromNanoseconds, java.util.function.BiFunction<T,java.time.ZoneId,T> adjust, boolean replaceZeroOffsetAsZ, boolean normalizeZoneId, boolean readNumericStringsAsTimestamp)
- Since:
- 2.16
-
InstantDeserializer
@Deprecated protected InstantDeserializer(java.lang.Class<T> supportedType, java.time.format.DateTimeFormatter formatter, java.util.function.Function<java.time.temporal.TemporalAccessor,T> parsedToValue, java.util.function.Function<InstantDeserializer.FromIntegerArguments,T> fromMilliseconds, java.util.function.Function<InstantDeserializer.FromDecimalArguments,T> fromNanoseconds, java.util.function.BiFunction<T,java.time.ZoneId,T> adjust, boolean replaceZeroOffsetAsZ)
Deprecated.
-
InstantDeserializer
protected InstantDeserializer(InstantDeserializer<T> base, java.time.format.DateTimeFormatter f)
-
InstantDeserializer
protected InstantDeserializer(InstantDeserializer<T> base, java.lang.Boolean adjustToContextTimezoneOverride)
-
InstantDeserializer
protected InstantDeserializer(InstantDeserializer<T> base, java.time.format.DateTimeFormatter f, java.lang.Boolean leniency)
-
InstantDeserializer
protected InstantDeserializer(InstantDeserializer<T> base, java.lang.Boolean leniency, java.time.format.DateTimeFormatter formatter, com.fasterxml.jackson.annotation.JsonFormat.Shape shape, java.lang.Boolean adjustToContextTimezoneOverride, java.lang.Boolean readTimestampsAsNanosOverride)
- Since:
- 2.16
-
InstantDeserializer
protected InstantDeserializer(InstantDeserializer<T> base, com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features)
- Since:
- 2.16
-
-
Method Detail
-
withDateFormat
protected InstantDeserializer<T> withDateFormat(java.time.format.DateTimeFormatter dtf)
- Specified by:
withDateFormat
in classJSR310DateTimeDeserializerBase<T extends java.time.temporal.Temporal>
-
withLeniency
protected InstantDeserializer<T> withLeniency(java.lang.Boolean leniency)
- Specified by:
withLeniency
in classJSR310DateTimeDeserializerBase<T extends java.time.temporal.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 java.time.temporal.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 java.io.IOException
- Specified by:
deserialize
in classcom.fasterxml.jackson.databind.JsonDeserializer<T extends java.time.temporal.Temporal>
- Throws:
java.io.IOException
-
shouldAdjustToContextTimezone
protected boolean shouldAdjustToContextTimezone(com.fasterxml.jackson.databind.DeserializationContext context)
-
shouldReadTimestampsAsNanoseconds
protected boolean shouldReadTimestampsAsNanoseconds(com.fasterxml.jackson.databind.DeserializationContext context)
-
_countPeriods
protected int _countPeriods(java.lang.String str)
-
_fromString
protected T _fromString(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, java.lang.String string0) throws java.io.IOException
- Throws:
java.io.IOException
-
_fromLong
protected T _fromLong(com.fasterxml.jackson.databind.DeserializationContext context, long timestamp)
-
_fromDecimal
protected T _fromDecimal(com.fasterxml.jackson.databind.DeserializationContext context, java.math.BigDecimal value)
-
getZone
private java.time.ZoneId getZone(com.fasterxml.jackson.databind.DeserializationContext context)
-
replaceZeroOffsetAsZIfNecessary
private java.lang.String replaceZeroOffsetAsZIfNecessary(java.lang.String text)
-
replaceZeroOffsetAsZ
private static java.lang.String replaceZeroOffsetAsZ(java.lang.String text)
-
addInColonToOffsetIfMissing
private java.lang.String addInColonToOffsetIfMissing(java.lang.String text)
-
-