Class RangeDeserializer
- java.lang.Object
-
- com.fasterxml.jackson.databind.JsonDeserializer<T>
-
- 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
,java.io.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 GuavaRange
.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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected com.google.common.collect.BoundType
_defaultBoundType
protected com.fasterxml.jackson.databind.JsonDeserializer<java.lang.Object>
_endpointDeserializer
Deserializer used when getting JSON Object representationprotected RangeHelper.RangeProperties
_fieldNames
protected com.fasterxml.jackson.databind.KeyDeserializer
_fromStringDeserializer
Deserializer used when getting JSON String (inline) representation.protected com.fasterxml.jackson.databind.JavaType
_rangeType
protected com.fasterxml.jackson.annotation.JsonFormat.Shape
_shape
protected static java.util.regex.Pattern
PATTERN_DOUBLE_DOT
private static long
serialVersionUID
-
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
All Methods Instance Methods Concrete Methods 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 java.lang.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 java.lang.Comparable<?>
deserializeStringified(com.fasterxml.jackson.databind.DeserializationContext context, java.lang.String value)
java.lang.Object
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
getValueType()
private boolean
isValidBracketNotation(java.lang.String range)
com.fasterxml.jackson.databind.type.LogicalType
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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
PATTERN_DOUBLE_DOT
protected static final java.util.regex.Pattern PATTERN_DOUBLE_DOT
-
_rangeType
protected final com.fasterxml.jackson.databind.JavaType _rangeType
-
_endpointDeserializer
protected final com.fasterxml.jackson.databind.JsonDeserializer<java.lang.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 Detail
-
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 Detail
-
getValueType
public com.fasterxml.jackson.databind.JavaType getValueType()
- Overrides:
getValueType
in classcom.fasterxml.jackson.databind.deser.std.StdDeserializer<com.google.common.collect.Range<?>>
-
logicalType
public com.fasterxml.jackson.databind.type.LogicalType logicalType()
- Overrides:
logicalType
in classcom.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 interfacecom.fasterxml.jackson.databind.deser.ContextualDeserializer
- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
deserializeWithType
public java.lang.Object deserializeWithType(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, com.fasterxml.jackson.databind.jsontype.TypeDeserializer typeDeserializer) throws java.io.IOException
- Overrides:
deserializeWithType
in classcom.fasterxml.jackson.databind.deser.std.StdDeserializer<com.google.common.collect.Range<?>>
- Throws:
java.io.IOException
-
deserialize
public com.google.common.collect.Range<?> deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext context) throws java.io.IOException
- Specified by:
deserialize
in classcom.fasterxml.jackson.databind.JsonDeserializer<com.google.common.collect.Range<?>>
- Throws:
java.io.IOException
-
deserializeRangeFromString
private com.google.common.collect.Range<?> deserializeRangeFromString(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p) throws java.io.IOException
- Throws:
java.io.IOException
-
deserializeBoundType
private com.google.common.collect.BoundType deserializeBoundType(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p) throws java.io.IOException
- Throws:
java.io.IOException
-
deserializeEndpoint
private java.lang.Comparable<?> deserializeEndpoint(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser p) throws java.io.IOException
- Throws:
java.io.IOException
-
deserializeStringified
private java.lang.Comparable<?> deserializeStringified(com.fasterxml.jackson.databind.DeserializationContext context, java.lang.String value) throws java.io.IOException
- Throws:
java.io.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(java.lang.String range)
-
-