Module tools.jackson.databind
Class UnwrappedPropertyHandler
java.lang.Object
tools.jackson.databind.deser.impl.UnwrappedPropertyHandler
Object that is responsible for handling acrobatics related to
deserializing "unwrapped" values; sets of properties that are
embedded (inlined) as properties of parent JSON object.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final List<SettableBeanProperty>protected final booleanFlag that indicates if any of the unwrapped value deserializers has an "any setter" (seeJsonAnySetter)protected final List<SettableBeanProperty>Set of all unwrapped property names from unwrapped deserializers.static final String -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedUnwrappedPropertyHandler(List<SettableBeanProperty> creatorProps, List<SettableBeanProperty> props, Set<String> unwrappedPropertyNames, boolean hasUnwrappedAnySetter) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCreatorProperty(SettableBeanProperty property) voidaddProperty(SettableBeanProperty property) voidcollectUnwrappedPropertyNamesTo(Set<String> names) Method for collecting property names recognized by unwrapped deserializers.static PropertyNamecreatorParamName(int index) Generates a placeholder name for creator properties that don't have a name, but are marked with `@JsonUnwrapped` annotation.booleanhasUnwrappedProperty(String propName) Method that checks if the given property name belongs to any unwrapped property.Creates a new UnwrappedPropertyHandler with initialized unwrapped property names cache.processUnwrapped(tools.jackson.core.JsonParser originalParser, DeserializationContext ctxt, Object bean, TokenBuffer buffered) Deprecated.processUnwrapped(tools.jackson.core.JsonParser originalParser, DeserializationContext ctxt, Object bean, TokenBuffer buffered, boolean hasUnwrappedContent) Processes unwrapped properties from the buffered token stream.processUnwrappedCreatorProperties(tools.jackson.core.JsonParser originalParser, DeserializationContext ctxt, PropertyValueBuffer values, TokenBuffer buffered) renameAll(DeserializationContext ctxt, NameTransformer transformer)
-
Field Details
-
JSON_UNWRAPPED_NAME_PREFIX
- Since:
- 2.19
- See Also:
-
_creatorProperties
- Since:
- 2.19
-
_properties
-
_unwrappedPropertyNames
Set of all unwrapped property names from unwrapped deserializers.- Since:
- 3.1
-
_hasUnwrappedAnySetter
protected final boolean _hasUnwrappedAnySetterFlag that indicates if any of the unwrapped value deserializers has an "any setter" (seeJsonAnySetter)- Since:
- 3.1
-
-
Constructor Details
-
UnwrappedPropertyHandler
public UnwrappedPropertyHandler() -
UnwrappedPropertyHandler
protected UnwrappedPropertyHandler(List<SettableBeanProperty> creatorProps, List<SettableBeanProperty> props, Set<String> unwrappedPropertyNames, boolean hasUnwrappedAnySetter)
-
-
Method Details
-
initializeUnwrappedPropertyNames
Creates a new UnwrappedPropertyHandler with initialized unwrapped property names cache.- Since:
- 3.1
-
addCreatorProperty
- Since:
- 2.19
-
addProperty
-
renameAll
-
processUnwrappedCreatorProperties
public PropertyValueBuffer processUnwrappedCreatorProperties(tools.jackson.core.JsonParser originalParser, DeserializationContext ctxt, PropertyValueBuffer values, TokenBuffer buffered) - Since:
- 2.19
-
processUnwrapped
public Object processUnwrapped(tools.jackson.core.JsonParser originalParser, DeserializationContext ctxt, Object bean, TokenBuffer buffered, boolean hasUnwrappedContent) Processes unwrapped properties from the buffered token stream.- Parameters:
originalParser- Parser from which input was originally readctxt- Deserialization contextbean- the target value objectbuffered- the token buffer containing the JSON tokens to deserialize- Returns:
- the bean with unwrapped properties set
- Since:
- 3.1
-
processUnwrapped
@Deprecated public Object processUnwrapped(tools.jackson.core.JsonParser originalParser, DeserializationContext ctxt, Object bean, TokenBuffer buffered) Deprecated. -
creatorParamName
Generates a placeholder name for creator properties that don't have a name, but are marked with `@JsonUnwrapped` annotation.- Since:
- 2.19
-
hasUnwrappedProperty
Method that checks if the given property name belongs to any unwrapped property.- Parameters:
propName- Property name to check- Returns:
trueif name is recognized by an unwrapped deserializer (or if any of them has "any setter")- Since:
- 3.1
-
collectUnwrappedPropertyNamesTo
Method for collecting property names recognized by unwrapped deserializers.- Since:
- 3.1
-
processUnwrapped(JsonParser, DeserializationContext, Object, TokenBuffer, boolean)