Class AtomicReferenceDeserializer
java.lang.Object
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.JsonDeserializer<T>
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.deser.std.StdDeserializer<T>
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.deser.std.ReferenceTypeDeserializer<AtomicReference<Object>>
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.deser.std.AtomicReferenceDeserializer
- All Implemented Interfaces:
ContextualDeserializer
,NullValueProvider
,ValueInstantiator.Gettable
,Serializable
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.JsonDeserializer
JsonDeserializer.None
-
Field Summary
Fields inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.deser.std.ReferenceTypeDeserializer
_fullType, _valueDeserializer, _valueInstantiator, _valueTypeDeserializer
Fields inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.deser.std.StdDeserializer
_valueClass, _valueType, F_MASK_ACCEPT_ARRAYS, F_MASK_INT_COERCIONS
-
Constructor Summary
ConstructorDescriptionAtomicReferenceDeserializer
(JavaType fullType, ValueInstantiator inst, TypeDeserializer typeDeser, JsonDeserializer<?> deser) -
Method Summary
Modifier and TypeMethodDescriptionLet's actually NOT coerce missing Creator parameters into empty value.Method called to determine value to be used for "empty" values (most commonly when deserializing from empty JSON Strings).Method that can be called to determine value to be used for representing null values (values deserialized when JSON token isJsonToken.VALUE_NULL
).getReferenced
(AtomicReference<Object> reference) Method that may be called to find contents of specified reference, if any; or `null` if none.referenceValue
(Object contents) supportsUpdate
(DeserializationConfig config) By default we assume that updateability mostly relies on value deserializer; if it supports updates, typically that's what matters.updateReference
(AtomicReference<Object> reference, Object contents) Method called in case of "merging update", in which we should try update reference instead of creating a new one.withResolved
(TypeDeserializer typeDeser, JsonDeserializer<?> valueDeser) Mutant factory method called when changes are needed; should construct newly configured instance with new values as indicated.Methods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.deser.std.ReferenceTypeDeserializer
createContextual, deserialize, deserialize, deserializeWithType, getEmptyAccessPattern, getNullAccessPattern, getValueInstantiator, getValueType, logicalType
Methods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.deser.std.StdDeserializer
_byteOverflow, _checkBooleanToStringCoercion, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFloatToStringCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkIntToFloatCoercion, _checkIntToStringCoercion, _checkTextualNull, _checkToStringCoercion, _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, _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, getValueType, handledType, handleMissingEndArrayForSingle, handleNestedArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer
Methods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.JsonDeserializer
deserializeWithType, findBackReference, getDelegatee, getEmptyValue, getKnownPropertyNames, getNullValue, getObjectIdReader, isCachable, replaceDelegatee, unwrappingDeserializer
-
Constructor Details
-
AtomicReferenceDeserializer
public AtomicReferenceDeserializer(JavaType fullType, ValueInstantiator inst, TypeDeserializer typeDeser, JsonDeserializer<?> deser) - Since:
- 2.9
-
-
Method Details
-
withResolved
public AtomicReferenceDeserializer withResolved(TypeDeserializer typeDeser, JsonDeserializer<?> valueDeser) Description copied from class:ReferenceTypeDeserializer
Mutant factory method called when changes are needed; should construct newly configured instance with new values as indicated.NOTE: caller has verified that there are changes, so implementations need NOT check if a new instance is needed.
- Specified by:
withResolved
in classReferenceTypeDeserializer<AtomicReference<Object>>
-
getNullValue
public AtomicReference<Object> getNullValue(DeserializationContext ctxt) throws JsonMappingException Description copied from class:JsonDeserializer
Method that can be called to determine value to be used for representing null values (values deserialized when JSON token isJsonToken.VALUE_NULL
). Usually this is simply Java null, but for some types (especially primitives) it may be necessary to use non-null values.This method may be called once, or multiple times, depending on what
JsonDeserializer.getNullAccessPattern()
returns.Default implementation simply returns null.
- Specified by:
getNullValue
in interfaceNullValueProvider
- Specified by:
getNullValue
in classReferenceTypeDeserializer<AtomicReference<Object>>
- Throws:
JsonMappingException
-
getEmptyValue
Description copied from class:JsonDeserializer
Method called to determine value to be used for "empty" values (most commonly when deserializing from empty JSON Strings). Usually this is same asJsonDeserializer.getNullValue(edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.DeserializationContext)
(which in turn is usually simply Java null), but it can be overridden for specific types. Or, if type should never be converted from empty String, method can also throw an exception.This method may be called once, or multiple times, depending on what
JsonDeserializer.getEmptyAccessPattern()
returns.Default implementation simply calls
JsonDeserializer.getNullValue(edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.DeserializationContext)
and returns value.- Overrides:
getEmptyValue
in classReferenceTypeDeserializer<AtomicReference<Object>>
- Throws:
JsonMappingException
-
getAbsentValue
Let's actually NOT coerce missing Creator parameters into empty value.- Specified by:
getAbsentValue
in interfaceNullValueProvider
- Overrides:
getAbsentValue
in classJsonDeserializer<AtomicReference<Object>>
- Throws:
JsonMappingException
-
referenceValue
- Specified by:
referenceValue
in classReferenceTypeDeserializer<AtomicReference<Object>>
-
getReferenced
Description copied from class:ReferenceTypeDeserializer
Method that may be called to find contents of specified reference, if any; or `null` if none. Note that method should never fail, so for types that use concept of "absence" vs "presence", `null` is to be returned for both "absent" and "reference to `null`" cases.- Specified by:
getReferenced
in classReferenceTypeDeserializer<AtomicReference<Object>>
-
updateReference
Description copied from class:ReferenceTypeDeserializer
Method called in case of "merging update", in which we should try update reference instead of creating a new one. If this does not succeed, should just create a new instance.- Specified by:
updateReference
in classReferenceTypeDeserializer<AtomicReference<Object>>
-
supportsUpdate
Description copied from class:ReferenceTypeDeserializer
By default we assume that updateability mostly relies on value deserializer; if it supports updates, typically that's what matters. So let's just delegate.- Overrides:
supportsUpdate
in classReferenceTypeDeserializer<AtomicReference<Object>>
-