Interface BeanProperty
-
- All Superinterfaces:
Named
- All Known Implementing Classes:
AttributePropertyWriter
,BeanProperty.Bogus
,BeanProperty.Std
,BeanPropertyWriter
,ConcreteBeanPropertyBase
,CreatorProperty
,FieldProperty
,InnerClassProperty
,ManagedReferenceProperty
,MapProperty
,MergingSettableBeanProperty
,MethodProperty
,ObjectIdReferenceProperty
,ObjectIdValueProperty
,PropertyWriter
,SettableBeanProperty
,SettableBeanProperty.Delegating
,SetterlessProperty
,UnwrappingBeanPropertyWriter
,ValueInjector
,VirtualBeanPropertyWriter
public interface BeanProperty extends Named
Bean properties are logical entities that represent data that Java objects (POJOs (Plain Old Java Objects), sometimes also called "beans") contain; and that are accessed using accessors (methods like getters and setters, fields, constructor parameters). Instances allow access to annotations directly associated to property (via field or method), as well as contextual annotations (annotations for class that contains properties).Instances are not typically passed when constructing serializers and deserializers, but rather only passed when context is known when
ContextualSerializer
andContextualDeserializer
resolution occurs (createContextual(...)
method is called). References may (need to) be retained by serializers and deserializers, especially when further resolving dependent handlers like value serializers/deserializers or structured types.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
BeanProperty.Bogus
Alternative "Null" implementation that can be used in cases where a non-nullBeanProperty
is neededstatic class
BeanProperty.Std
Simple stand-alone implementation, useful as a placeholder or base class for more complex implementations.
-
Field Summary
Fields Modifier and Type Field Description static JsonFormat.Value
EMPTY_FORMAT
static JsonInclude.Value
EMPTY_INCLUDE
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)
Method that can be called to visit the type structure that this property is part of.java.util.List<PropertyName>
findAliases(MapperConfig<?> config)
Method for accessing set of possible alternate names that are accepted during deserialization.JsonFormat.Value
findFormatOverrides(AnnotationIntrospector intr)
Deprecated.since 2.8 usefindPropertyFormat(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, java.lang.Class<?>)
instead.JsonFormat.Value
findPropertyFormat(MapperConfig<?> config, java.lang.Class<?> baseType)
Helper method used to look up format settings applicable to this property, considering both possible per-type configuration settingsJsonInclude.Value
findPropertyInclusion(MapperConfig<?> config, java.lang.Class<?> baseType)
Convenience method that is roughly equivalent to<A extends java.lang.annotation.Annotation>
AgetAnnotation(java.lang.Class<A> acls)
Method for finding annotation associated with this property; meaning annotation associated with one of entities used to access property.<A extends java.lang.annotation.Annotation>
AgetContextAnnotation(java.lang.Class<A> acls)
Method for finding annotation associated with context of this property; usually class in which member is declared (or its subtype if processing subtype).PropertyName
getFullName()
Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).AnnotatedMember
getMember()
Method for accessing primary physical entity that represents the property; annotated field, method or constructor property.PropertyMetadata
getMetadata()
Accessor for additional optional information about property.java.lang.String
getName()
Method to get logical name of the propertyJavaType
getType()
Method to get declared type of the property.PropertyName
getWrapperName()
If property is indicated to be wrapped, name of wrapper element to use.boolean
isRequired()
Whether value for property is marked as required using annotations or associated schema.boolean
isVirtual()
Accessor for checking whether there is an actual physical property behind this property abstraction or not.
-
-
-
Field Detail
-
EMPTY_FORMAT
static final JsonFormat.Value EMPTY_FORMAT
-
EMPTY_INCLUDE
static final JsonInclude.Value EMPTY_INCLUDE
-
-
Method Detail
-
getName
java.lang.String getName()
Method to get logical name of the property
-
getFullName
PropertyName getFullName()
Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).- Since:
- 2.3
-
getType
JavaType getType()
Method to get declared type of the property.
-
getWrapperName
PropertyName getWrapperName()
If property is indicated to be wrapped, name of wrapper element to use.- Since:
- 2.2
-
getMetadata
PropertyMetadata getMetadata()
Accessor for additional optional information about property.- Returns:
- Metadata about property; never null.
- Since:
- 2.3
-
isRequired
boolean isRequired()
Whether value for property is marked as required using annotations or associated schema. Equivalent to:getMetadata().isRequired()
- Since:
- 2.2
-
isVirtual
boolean isVirtual()
Accessor for checking whether there is an actual physical property behind this property abstraction or not.- Since:
- 2.7
-
getAnnotation
<A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<A> acls)
Method for finding annotation associated with this property; meaning annotation associated with one of entities used to access property.Note that this method should only be called for custom annotations; access to standard Jackson annotations (or ones supported by alternate
AnnotationIntrospector
s) should be accessed throughAnnotationIntrospector
.
-
getContextAnnotation
<A extends java.lang.annotation.Annotation> A getContextAnnotation(java.lang.Class<A> acls)
Method for finding annotation associated with context of this property; usually class in which member is declared (or its subtype if processing subtype).Note that this method should only be called for custom annotations; access to standard Jackson annotations (or ones supported by alternate
AnnotationIntrospector
s) should be accessed throughAnnotationIntrospector
.
-
getMember
AnnotatedMember getMember()
Method for accessing primary physical entity that represents the property; annotated field, method or constructor property.
-
findFormatOverrides
@Deprecated JsonFormat.Value findFormatOverrides(AnnotationIntrospector intr)
Deprecated.since 2.8 usefindPropertyFormat(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, java.lang.Class<?>)
instead.Convenience method that is roughly equivalent toreturn intr.findFormat(getMember());
and specifically does NOT try to find per-type format defaults to merge; usefindPropertyFormat(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, java.lang.Class<?>)
if such defaults would be useful.- Since:
- 2.6
-
findPropertyFormat
JsonFormat.Value findPropertyFormat(MapperConfig<?> config, java.lang.Class<?> baseType)
Helper method used to look up format settings applicable to this property, considering both possible per-type configuration settings- Since:
- 2.7
-
findPropertyInclusion
JsonInclude.Value findPropertyInclusion(MapperConfig<?> config, java.lang.Class<?> baseType)
Convenience method that is roughly equivalent toreturn config.getAnnotationIntrospector().findPropertyInclusion(getMember());
but also considers global default settings for inclusion- Since:
- 2.7
-
findAliases
java.util.List<PropertyName> findAliases(MapperConfig<?> config)
Method for accessing set of possible alternate names that are accepted during deserialization.- Returns:
- List (possibly empty) of alternate names; never null
- Since:
- 2.9
-
depositSchemaProperty
void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) throws JsonMappingException
Method that can be called to visit the type structure that this property is part of. Note that not all implementations support traversal with this method; those that do not should throwUnsupportedOperationException
.NOTE: Starting with 2.7, takes explicit
SerializerProvider
argument to reduce the need to rely on provider visitor may or may not have assigned.- Parameters:
objectVisitor
- Visitor to used as the callback handler- Throws:
JsonMappingException
- Since:
- 2.2 (although signature did change in 2.7)
-
-