Class RangeDeserializer

java.lang.Object
com.fasterxml.jackson.databind.JsonDeserializer<com.google.common.collect.Range<?>>
com.fasterxml.jackson.databind.deser.std.StdDeserializer<com.google.common.collect.Range<?>>
com.fasterxml.jackson.datatype.guava.deser.RangeDeserializer
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 RangeDeserializer extends com.fasterxml.jackson.databind.deser.std.StdDeserializer<com.google.common.collect.Range<?>> implements com.fasterxml.jackson.databind.deser.ContextualDeserializer
Jackson deserializer for a Guava Range.

TODO: I think it would make sense to reimplement this deserializer to use Delegating Deserializer, using a POJO as an intermediate form (properties could be of type Object) This would also also simplify the implementation a bit.

See Also:
  • 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 com.google.common.collect.BoundType
     
    protected final com.fasterxml.jackson.databind.JsonDeserializer<Object>
    Deserializer used when getting JSON Object representation
     
    protected final com.fasterxml.jackson.databind.KeyDeserializer
    Deserializer used when getting JSON String (inline) representation.
    protected final com.fasterxml.jackson.databind.JavaType
     
    protected final com.fasterxml.jackson.annotation.JsonFormat.Shape
     
    protected static final Pattern
     
    private static final long
     

    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
     
    RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser)
    Deprecated.
     
    RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser, com.google.common.collect.BoundType defaultBoundType)
    Deprecated.
    protected
    RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser, com.google.common.collect.BoundType defaultBoundType, RangeHelper.RangeProperties fieldNames)
    Deprecated.
    Since 2.17 use other constructor(s)
    protected
    RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser, com.google.common.collect.BoundType defaultBoundType, RangeHelper.RangeProperties fieldNames, com.fasterxml.jackson.annotation.JsonFormat.Shape shape, com.fasterxml.jackson.databind.KeyDeserializer fromStringDeserializer)
     
     
    RangeDeserializer(com.google.common.collect.BoundType defaultBoundType, com.fasterxml.jackson.databind.JavaType rangeType)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    com.fasterxml.jackson.databind.JsonDeserializer<?>
    createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.BeanProperty property)
     
    com.google.common.collect.Range<?>
    deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext context)
     
    private com.google.common.collect.BoundType
    deserializeBoundType(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p)
     
    private Comparable<?>
    deserializeEndpoint(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p)
     
    private com.google.common.collect.Range<?>
    deserializeRangeFromString(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p)
     
    private Comparable<?>
    deserializeStringified(com.fasterxml.jackson.databind.DeserializationContext context, String value)
     
    deserializeWithType(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer)
     
    private void
    expect(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonToken expected, com.fasterxml.jackson.core.JsonToken actual)
     
    com.fasterxml.jackson.databind.JavaType
     
    private boolean
     
    com.fasterxml.jackson.databind.type.LogicalType
     

    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, handledType, handleMissingEndArrayForSingle, handleNestedArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer

    Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer

    deserialize, deserializeWithType, findBackReference, getAbsentValue, getDelegatee, getEmptyAccessPattern, getEmptyValue, getEmptyValue, getKnownPropertyNames, getNullAccessPattern, getNullValue, getNullValue, getObjectIdReader, isCachable, replaceDelegatee, supportsUpdate, unwrappingDeserializer

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • PATTERN_DOUBLE_DOT

      protected static final Pattern PATTERN_DOUBLE_DOT
    • _rangeType

      protected final com.fasterxml.jackson.databind.JavaType _rangeType
    • _endpointDeserializer

      protected final com.fasterxml.jackson.databind.JsonDeserializer<Object> _endpointDeserializer
      Deserializer used when getting JSON Object representation
    • _fromStringDeserializer

      protected final com.fasterxml.jackson.databind.KeyDeserializer _fromStringDeserializer
      Deserializer used when getting JSON String (inline) representation.
      Since:
      2.17
    • _defaultBoundType

      protected final com.google.common.collect.BoundType _defaultBoundType
    • _fieldNames

      protected final RangeHelper.RangeProperties _fieldNames
      Since:
      2.10
    • _shape

      protected final com.fasterxml.jackson.annotation.JsonFormat.Shape _shape
      Since:
      2.17
  • Constructor Details

    • RangeDeserializer

      public RangeDeserializer(com.google.common.collect.BoundType defaultBoundType, com.fasterxml.jackson.databind.JavaType rangeType)
    • RangeDeserializer

      @Deprecated public RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser)
      Deprecated.
    • RangeDeserializer

      @Deprecated public RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser, com.google.common.collect.BoundType defaultBoundType)
      Deprecated.
    • RangeDeserializer

      @Deprecated protected RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser, com.google.common.collect.BoundType defaultBoundType, RangeHelper.RangeProperties fieldNames)
      Deprecated.
      Since 2.17 use other constructor(s)
      Since:
      2.10
    • RangeDeserializer

      protected RangeDeserializer(com.fasterxml.jackson.databind.JavaType rangeType, com.fasterxml.jackson.databind.JsonDeserializer<?> endpointDeser, com.google.common.collect.BoundType defaultBoundType, RangeHelper.RangeProperties fieldNames, com.fasterxml.jackson.annotation.JsonFormat.Shape shape, com.fasterxml.jackson.databind.KeyDeserializer fromStringDeserializer)
      Since:
      2.17
  • Method Details

    • getValueType

      public com.fasterxml.jackson.databind.JavaType getValueType()
      Overrides:
      getValueType in class com.fasterxml.jackson.databind.deser.std.StdDeserializer<com.google.common.collect.Range<?>>
    • logicalType

      public com.fasterxml.jackson.databind.type.LogicalType logicalType()
      Overrides:
      logicalType in class com.fasterxml.jackson.databind.JsonDeserializer<com.google.common.collect.Range<?>>
    • 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
    • deserializeWithType

      public Object deserializeWithType(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer) throws IOException
      Overrides:
      deserializeWithType in class com.fasterxml.jackson.databind.deser.std.StdDeserializer<com.google.common.collect.Range<?>>
      Throws:
      IOException
    • deserialize

      public com.google.common.collect.Range<?> deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext context) throws IOException
      Specified by:
      deserialize in class com.fasterxml.jackson.databind.JsonDeserializer<com.google.common.collect.Range<?>>
      Throws:
      IOException
    • deserializeRangeFromString

      private com.google.common.collect.Range<?> deserializeRangeFromString(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p) throws IOException
      Throws:
      IOException
    • deserializeBoundType

      private com.google.common.collect.BoundType deserializeBoundType(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p) throws IOException
      Throws:
      IOException
    • deserializeEndpoint

      private Comparable<?> deserializeEndpoint(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p) throws IOException
      Throws:
      IOException
    • deserializeStringified

      private Comparable<?> deserializeStringified(com.fasterxml.jackson.databind.DeserializationContext context, String value) throws IOException
      Throws:
      IOException
    • expect

      private void expect(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonToken expected, com.fasterxml.jackson.core.JsonToken actual) throws com.fasterxml.jackson.databind.JsonMappingException
      Throws:
      com.fasterxml.jackson.databind.JsonMappingException
    • isValidBracketNotation

      private boolean isValidBracketNotation(String range)