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 temporalInstants,OffsetDateTime, andZonedDateTimes.- Since:
- 2.2
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classInstantDeserializer.FromDecimalArgumentsstatic classInstantDeserializer.FromIntegerArguments
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Boolean_adjustToContextTZOverrideFlag forJsonFormat.Feature.ADJUST_DATES_TO_CONTEXT_TIME_ZONEprotected boolean_alwaysAllowStringifiedDateTimestampsFlag set fromJavaTimeFeature.ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPSto determine whether stringified numbers are interpreted as timestamps (enabled) nor not (disabled) in addition to a custom pattern ({code DateTimeFormatter}).protected boolean_normalizeZoneIdFlag set fromJavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_IDto determine whetherZoneIdis to be normalized during deserialization.protected java.lang.Boolean_readTimestampsAsNanosOverrideFlag forJsonFormat.Feature.READ_DATE_TIMESTAMPS_AS_NANOSECONDSprotected java.util.function.BiFunction<T,java.time.ZoneId,T>adjustprivate static booleanDEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPSprivate static booleanDEFAULT_NORMALIZE_ZONE_IDprotected java.util.function.Function<InstantDeserializer.FromIntegerArguments,T>fromMillisecondsprotected java.util.function.Function<InstantDeserializer.FromDecimalArguments,T>fromNanosecondsstatic InstantDeserializer<java.time.Instant>INSTANTprotected static java.util.regex.PatternISO8601_COLONLESS_OFFSET_REGEXConstants used to check if ISO 8601 time string is colonless.static InstantDeserializer<java.time.OffsetDateTime>OFFSET_DATE_TIMEprotected java.util.function.Function<java.time.temporal.TemporalAccessor,T>parsedToValueprotected booleanreplaceZeroOffsetAsZIn 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 longserialVersionUIDstatic 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 protectedInstantDeserializer(InstantDeserializer<T> base, com.fasterxml.jackson.core.util.JacksonFeatureSet<JavaTimeFeature> features)protectedInstantDeserializer(InstantDeserializer<T> base, java.lang.Boolean adjustToContextTimezoneOverride)protectedInstantDeserializer(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)protectedInstantDeserializer(InstantDeserializer<T> base, java.time.format.DateTimeFormatter f)protectedInstantDeserializer(InstantDeserializer<T> base, java.time.format.DateTimeFormatter f, java.lang.Boolean leniency)protectedInstantDeserializer(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.protectedInstantDeserializer(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.StringaddInColonToOffsetIfMissing(java.lang.String text)Tdeserialize(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context)private java.time.ZoneIdgetZone(com.fasterxml.jackson.databind.DeserializationContext context)private static java.lang.StringreplaceZeroOffsetAsZ(java.lang.String text)private java.lang.StringreplaceZeroOffsetAsZIfNecessary(java.lang.String text)protected booleanshouldAdjustToContextTimezone(com.fasterxml.jackson.databind.DeserializationContext context)protected booleanshouldReadTimestampsAsNanoseconds(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_IDto determine whetherZoneIdis to be normalized during deserialization.- Since:
- 2.16
-
_alwaysAllowStringifiedDateTimestamps
protected final boolean _alwaysAllowStringifiedDateTimestamps
Flag set fromJavaTimeFeature.ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPSto 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:
withDateFormatin classJSR310DateTimeDeserializerBase<T extends java.time.temporal.Temporal>
-
withLeniency
protected InstantDeserializer<T> withLeniency(java.lang.Boolean leniency)
- Specified by:
withLeniencyin 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:
_withFormatOverridesin classJSR310DateTimeDeserializerBase<T extends java.time.temporal.Temporal>- Parameters:
ctxt- Active deserialization contextproperty- (optional) Property on which this deserializer is used, ornullfor 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:
deserializein 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)
-
-