Class InstantDeserializer<T extends org.threeten.bp.temporal.Temporal>

  • 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 InstantDeserializer<T extends org.threeten.bp.temporal.Temporal>
    extends ThreeTenDateTimeDeserializerBase<T>
    Deserializer for ThreeTen temporal Instants, OffsetDateTime, and ZonedDateTimes.
    Since:
    2.2
    Author:
    Nick Williams
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected int _countPeriods​(String str)  
      protected T _failForNotLenient​(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.core.JsonToken expToken)  
      protected T _fromDecimal​(com.fasterxml.jackson.databind.DeserializationContext context, BigDecimal value)  
      protected T _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 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 <R> R _handleDateTimeException​(com.fasterxml.jackson.databind.DeserializationContext context, org.threeten.bp.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 org.threeten.bp.DateTimeException _peelDTE​(org.threeten.bp.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)  
      protected ThreeTenDateTimeDeserializerBase<?> _withFormatOverrides​(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property, com.fasterxml.jackson.annotation.JsonFormat.Value formatOverrides)  
      T 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 boolean shouldAdjustToContextTimezone​(com.fasterxml.jackson.databind.DeserializationContext context)  
      protected InstantDeserializer<T> withDateFormat​(org.threeten.bp.format.DateTimeFormatter dtf)  
      protected InstantDeserializer<T> withLeniency​(Boolean leniency)  
      protected InstantDeserializer<T> withShape​(com.fasterxml.jackson.annotation.JsonFormat.Shape shape)  
      • 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, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkTextualNull, _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, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseInteger, _parseIntPrimitive, _parseIntPrimitive, _parseLong, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, _verifyNullForScalarCoercion, _verifyNumberForScalarCoercion, _verifyStringForScalarCoercion, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueClass, getValueInstantiator, getValueType, getValueType, handledType, handleMissingEndArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer
      • Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer

        deserializeWithType, findBackReference, getDelegatee, getEmptyValue, getEmptyValue, getKnownPropertyNames, getNullValue, getNullValue, getObjectIdReader, isCachable, replaceDelegatee, unwrappingDeserializer
    • Field Detail

      • OFFSET_DATE_TIME

        public static final InstantDeserializer<org.threeten.bp.OffsetDateTime> OFFSET_DATE_TIME
      • ZONED_DATE_TIME

        public static final InstantDeserializer<org.threeten.bp.ZonedDateTime> ZONED_DATE_TIME
      • parsedToValue

        protected final Function<org.threeten.bp.temporal.TemporalAccessor,​T extends org.threeten.bp.temporal.Temporal> parsedToValue
      • adjust

        protected final BiFunction<T extends org.threeten.bp.temporal.Temporal,​org.threeten.bp.ZoneId,​T extends org.threeten.bp.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 Boolean _adjustToContextTZOverride
        Flag for JsonFormat.Feature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE
        Since:
        2.8
      • _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
    • Method Detail

      • _withFormatOverrides

        protected ThreeTenDateTimeDeserializerBase<?> _withFormatOverrides​(com.fasterxml.jackson.databind.DeserializationContext ctxt,
                                                                           com.fasterxml.jackson.databind.BeanProperty property,
                                                                           com.fasterxml.jackson.annotation.JsonFormat.Value formatOverrides)
        Overrides:
        _withFormatOverrides in class ThreeTenDateTimeDeserializerBase<T extends org.threeten.bp.temporal.Temporal>
        Parameters:
        ctxt - Active deserialization context
        property - (optional) Property on which this deserializer is used, or null for root value
        formatOverrides - 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 class com.fasterxml.jackson.databind.JsonDeserializer<T extends org.threeten.bp.temporal.Temporal>
        Throws:
        IOException
      • shouldAdjustToContextTimezone

        protected boolean shouldAdjustToContextTimezone​(com.fasterxml.jackson.databind.DeserializationContext context)
      • _countPeriods

        protected int _countPeriods​(String str)
      • _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)
      • isLenient

        protected boolean isLenient()
        Returns:
        true if lenient handling is enabled; {code false} if not (strict mode)
        Since:
        2.11
      • _fromEmptyString

        protected T _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,
                                                 org.threeten.bp.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 T _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 org.threeten.bp.DateTimeException _peelDTE​(org.threeten.bp.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.