Package com.fasterxml.jackson.databind
Class PropertyMetadata
- java.lang.Object
-
- com.fasterxml.jackson.databind.PropertyMetadata
-
- All Implemented Interfaces:
java.io.Serializable
public class PropertyMetadata extends java.lang.Object implements java.io.Serializable
Simple container class used for storing "additional" metadata about properties. Carved out to reduce number of distinct properties that actual property implementations and place holders need to store; since instances are immutable, they can be freely shared.- Since:
- 2.3
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PropertyMetadata.MergeInfo
Helper class used for containing information about expected merge information for this property, if merging is expected.
-
Field Summary
Fields Modifier and Type Field Description protected com.fasterxml.jackson.annotation.Nulls
_contentNulls
Settings regarding handling of incoming `null`s, both for value itself and, for structured types, content values (array/Collection elements, Map values).protected java.lang.String
_defaultValue
Optional default value, as String, for property; not used for any functionality by core databind, offered as metadata for extensions.protected java.lang.String
_description
Optional human-readable description associated with the property.protected java.lang.Integer
_index
Optional index of the property within containing Object.protected PropertyMetadata.MergeInfo
_mergeInfo
Settings regarding merging, if property is determined to possibly be mergeable (possibly since global settings may be omitted for non-mergeable types).protected java.lang.Boolean
_required
Three states: required, not required and unknown; unknown represented as null.protected com.fasterxml.jackson.annotation.Nulls
_valueNulls
Settings regarding handling of incoming `null`s, both for value itself and, for structured types, content values (array/Collection elements, Map values).static PropertyMetadata
STD_OPTIONAL
static PropertyMetadata
STD_REQUIRED
static PropertyMetadata
STD_REQUIRED_OR_OPTIONAL
-
Constructor Summary
Constructors Modifier Constructor Description protected
PropertyMetadata(java.lang.Boolean req, java.lang.String desc, java.lang.Integer index, java.lang.String def, PropertyMetadata.MergeInfo mergeInfo, com.fasterxml.jackson.annotation.Nulls valueNulls, com.fasterxml.jackson.annotation.Nulls contentNulls)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static PropertyMetadata
construct(boolean req, java.lang.String desc, java.lang.Integer index, java.lang.String defaultValue)
Deprecated.static PropertyMetadata
construct(java.lang.Boolean req, java.lang.String desc, java.lang.Integer index, java.lang.String defaultValue)
com.fasterxml.jackson.annotation.Nulls
getContentNulls()
java.lang.String
getDefaultValue()
java.lang.String
getDescription()
java.lang.Integer
getIndex()
PropertyMetadata.MergeInfo
getMergeInfo()
java.lang.Boolean
getRequired()
com.fasterxml.jackson.annotation.Nulls
getValueNulls()
boolean
hasDefaultValue()
Accessor for determining whether property has declared "default value", which may be used by extension modules.boolean
hasIndex()
boolean
isRequired()
protected java.lang.Object
readResolve()
Minor optimization: let's canonicalize back to placeholders in cases where there is no real data to considerPropertyMetadata
withDefaultValue(java.lang.String def)
PropertyMetadata
withDescription(java.lang.String desc)
PropertyMetadata
withIndex(java.lang.Integer index)
PropertyMetadata
withMergeInfo(PropertyMetadata.MergeInfo mergeInfo)
PropertyMetadata
withNulls(com.fasterxml.jackson.annotation.Nulls valueNulls, com.fasterxml.jackson.annotation.Nulls contentNulls)
PropertyMetadata
withRequired(java.lang.Boolean b)
-
-
-
Field Detail
-
STD_REQUIRED
public static final PropertyMetadata STD_REQUIRED
-
STD_OPTIONAL
public static final PropertyMetadata STD_OPTIONAL
-
STD_REQUIRED_OR_OPTIONAL
public static final PropertyMetadata STD_REQUIRED_OR_OPTIONAL
-
_required
protected final java.lang.Boolean _required
Three states: required, not required and unknown; unknown represented as null.
-
_description
protected final java.lang.String _description
Optional human-readable description associated with the property.
-
_index
protected final java.lang.Integer _index
Optional index of the property within containing Object.- Since:
- 2.4
-
_defaultValue
protected final java.lang.String _defaultValue
Optional default value, as String, for property; not used for any functionality by core databind, offered as metadata for extensions.
-
_mergeInfo
protected final transient PropertyMetadata.MergeInfo _mergeInfo
Settings regarding merging, if property is determined to possibly be mergeable (possibly since global settings may be omitted for non-mergeable types).NOTE: transient since it is assumed that this information is only relevant during initial setup and not needed after full initialization. May be changed if this proves necessary.
- Since:
- 2.9
-
_valueNulls
protected com.fasterxml.jackson.annotation.Nulls _valueNulls
Settings regarding handling of incoming `null`s, both for value itself and, for structured types, content values (array/Collection elements, Map values).- Since:
- 2.9
-
_contentNulls
protected com.fasterxml.jackson.annotation.Nulls _contentNulls
Settings regarding handling of incoming `null`s, both for value itself and, for structured types, content values (array/Collection elements, Map values).- Since:
- 2.9
-
-
Constructor Detail
-
PropertyMetadata
protected PropertyMetadata(java.lang.Boolean req, java.lang.String desc, java.lang.Integer index, java.lang.String def, PropertyMetadata.MergeInfo mergeInfo, com.fasterxml.jackson.annotation.Nulls valueNulls, com.fasterxml.jackson.annotation.Nulls contentNulls)
- Since:
- 2.9
-
-
Method Detail
-
construct
public static PropertyMetadata construct(java.lang.Boolean req, java.lang.String desc, java.lang.Integer index, java.lang.String defaultValue)
- Since:
- 2.8.8
-
construct
@Deprecated public static PropertyMetadata construct(boolean req, java.lang.String desc, java.lang.Integer index, java.lang.String defaultValue)
Deprecated.
-
readResolve
protected java.lang.Object readResolve()
Minor optimization: let's canonicalize back to placeholders in cases where there is no real data to consider
-
withDescription
public PropertyMetadata withDescription(java.lang.String desc)
-
withMergeInfo
public PropertyMetadata withMergeInfo(PropertyMetadata.MergeInfo mergeInfo)
- Since:
- 2.9
-
withNulls
public PropertyMetadata withNulls(com.fasterxml.jackson.annotation.Nulls valueNulls, com.fasterxml.jackson.annotation.Nulls contentNulls)
- Since:
- 2.9
-
withDefaultValue
public PropertyMetadata withDefaultValue(java.lang.String def)
-
withIndex
public PropertyMetadata withIndex(java.lang.Integer index)
-
withRequired
public PropertyMetadata withRequired(java.lang.Boolean b)
-
getDescription
public java.lang.String getDescription()
-
getDefaultValue
public java.lang.String getDefaultValue()
- Since:
- 2.5
-
hasDefaultValue
public boolean hasDefaultValue()
Accessor for determining whether property has declared "default value", which may be used by extension modules.- Since:
- 2.6
-
isRequired
public boolean isRequired()
-
getRequired
public java.lang.Boolean getRequired()
-
getIndex
public java.lang.Integer getIndex()
- Since:
- 2.4
-
hasIndex
public boolean hasIndex()
- Since:
- 2.4
-
getMergeInfo
public PropertyMetadata.MergeInfo getMergeInfo()
- Since:
- 2.9
-
getValueNulls
public com.fasterxml.jackson.annotation.Nulls getValueNulls()
- Since:
- 2.9
-
getContentNulls
public com.fasterxml.jackson.annotation.Nulls getContentNulls()
- Since:
- 2.9
-
-