|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.fasterxml.jackson.databind.AnnotationIntrospector
com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector
public class JaxbAnnotationIntrospector
Annotation introspector that leverages JAXB annotations where applicable to JSON mapping. As of Jackson 2.0, most JAXB annotations are supported at least to some degree. Ones that are NOT yet supported are:
XmlAnyAttribute
not yet used (as of 1.5) but may be in future (as an alias for @JsonAnySetter?)
XmlAnyElement
not yet used, may be as per [JACKSON-253]
XmlAttachmentRef
: JSON does not support external attachments
XmlElementDecl
XmlElementRefs
because Jackson doesn't have any support for 'named' collection items -- however,
this may become partially supported as per [JACKSON-253].
XmlInlineBinaryData
since the underlying concepts
(like XOP) do not exist in JSON -- Jackson will always use inline base64 encoding as the method
XmlList
because JSON does have (or necessarily need)
method of serializing list of values as space-separated Strings
XmlMimeType
XmlMixed
since JSON has no concept of mixed content
XmlRegistry
XmlSchema
not used, unlikely to be used
XmlSchemaType
not used, unlikely to be used
XmlSchemaTypes
not used, unlikely to be used
XmlSeeAlso
not yet supported, but [ISSUE-1] filed to use it, so may be supported.
XmlValue
will have a property named 'value' on its JSON object.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.AnnotationIntrospector |
---|
com.fasterxml.jackson.databind.AnnotationIntrospector.Pair, com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty |
Field Summary | |
---|---|
protected com.fasterxml.jackson.databind.JsonDeserializer<?> |
_dataHandlerDeserializer
|
protected com.fasterxml.jackson.databind.JsonSerializer<?> |
_dataHandlerSerializer
|
protected boolean |
_ignoreXmlIDREF
|
protected String |
_jaxbPackageName
|
protected com.fasterxml.jackson.databind.type.TypeFactory |
_typeFactory
|
protected static boolean |
DEFAULT_IGNORE_XMLIDREF
|
protected static String |
MARKER_FOR_DEFAULT
|
Constructor Summary | |
---|---|
JaxbAnnotationIntrospector()
Deprecated. Since 2.1, use the ctor that takes TypeFactory |
|
JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config)
|
|
JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.type.TypeFactory typeFactory)
|
|
JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.type.TypeFactory typeFactory,
boolean ignoreXmlIDREF)
|
Method Summary | |
---|---|
protected Class<?> |
_doFindDeserializationType(com.fasterxml.jackson.databind.introspect.Annotated a,
com.fasterxml.jackson.databind.JavaType baseType)
|
protected javax.xml.bind.annotation.adapters.XmlAdapter<?,?> |
_findContentAdapter(com.fasterxml.jackson.databind.introspect.Annotated ann)
|
protected String |
_propertyNameToString(com.fasterxml.jackson.databind.PropertyName n)
|
protected com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> |
_typeResolverFromXmlElements(com.fasterxml.jackson.databind.introspect.AnnotatedMember am)
|
protected javax.xml.bind.annotation.XmlAccessType |
findAccessType(com.fasterxml.jackson.databind.introspect.Annotated ac)
Method for locating JAXB XmlAccessType annotation value
for given annotated entity, if it has one, or inherits one from
its ancestors (in JAXB sense, package etc). |
com.fasterxml.jackson.databind.introspect.VisibilityChecker<?> |
findAutoDetectVisibility(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac,
com.fasterxml.jackson.databind.introspect.VisibilityChecker<?> checker)
|
Object |
findContentDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
|
Object |
findContentSerializer(com.fasterxml.jackson.databind.introspect.Annotated am)
|
Class<?> |
findDeserializationContentType(com.fasterxml.jackson.databind.introspect.Annotated a,
com.fasterxml.jackson.databind.JavaType baseContentType)
|
String |
findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
Deprecated. |
String |
findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
Deprecated. |
Class<?> |
findDeserializationType(com.fasterxml.jackson.databind.introspect.Annotated a,
com.fasterxml.jackson.databind.JavaType baseType)
JAXB does allow specifying (more) concrete class for deserialization by using \@XmlElement annotation. |
Object |
findDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
|
String |
findEnumValue(Enum<?> e)
!!! 12-Oct-2009, tatu: This is hideously slow implementation, called potentially for every single enum value being serialized. |
Boolean |
findIgnoreUnknownProperties(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
|
Object |
findKeyDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
|
com.fasterxml.jackson.databind.PropertyName |
findNameForDeserialization(com.fasterxml.jackson.databind.introspect.Annotated a)
|
com.fasterxml.jackson.databind.PropertyName |
findNameForSerialization(com.fasterxml.jackson.databind.introspect.Annotated a)
|
com.fasterxml.jackson.databind.introspect.ObjectIdInfo |
findObjectIdInfo(com.fasterxml.jackson.databind.introspect.Annotated ann)
|
com.fasterxml.jackson.databind.introspect.ObjectIdInfo |
findObjectReferenceInfo(com.fasterxml.jackson.databind.introspect.Annotated ann,
com.fasterxml.jackson.databind.introspect.ObjectIdInfo base)
|
com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> |
findPropertyContentTypeResolver(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config,
com.fasterxml.jackson.databind.introspect.AnnotatedMember am,
com.fasterxml.jackson.databind.JavaType containerType)
|
com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> |
findPropertyTypeResolver(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config,
com.fasterxml.jackson.databind.introspect.AnnotatedMember am,
com.fasterxml.jackson.databind.JavaType baseType)
|
com.fasterxml.jackson.databind.PropertyName |
findRootName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
|
com.fasterxml.jackson.annotation.JsonInclude.Include |
findSerializationInclusion(com.fasterxml.jackson.databind.introspect.Annotated a,
com.fasterxml.jackson.annotation.JsonInclude.Include defValue)
Implementation of this method is slightly tricky, given that JAXB defaults differ from Jackson defaults. |
String |
findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
Deprecated. |
String |
findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
Deprecated. |
String[] |
findSerializationPropertyOrder(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
|
Boolean |
findSerializationSortAlphabetically(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
|
Class<?> |
findSerializationType(com.fasterxml.jackson.databind.introspect.Annotated a)
|
com.fasterxml.jackson.databind.JsonSerializer<?> |
findSerializer(com.fasterxml.jackson.databind.introspect.Annotated am)
|
List<com.fasterxml.jackson.databind.jsontype.NamedType> |
findSubtypes(com.fasterxml.jackson.databind.introspect.Annotated a)
|
String |
findTypeName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
|
com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> |
findTypeResolver(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config,
com.fasterxml.jackson.databind.introspect.AnnotatedClass ac,
com.fasterxml.jackson.databind.JavaType baseType)
|
com.fasterxml.jackson.databind.PropertyName |
findWrapperName(com.fasterxml.jackson.databind.introspect.Annotated ann)
|
protected com.fasterxml.jackson.databind.type.TypeFactory |
getTypeFactory()
|
boolean |
hasAnySetterAnnotation(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
|
boolean |
hasAsValueAnnotation(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
|
boolean |
hasCreatorAnnotation(com.fasterxml.jackson.databind.introspect.Annotated am)
|
boolean |
hasIgnoreMarker(com.fasterxml.jackson.databind.introspect.AnnotatedMember m)
|
Boolean |
hasRequiredMarker(com.fasterxml.jackson.databind.introspect.AnnotatedMember m)
|
Boolean |
isIgnorableType(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
|
protected boolean |
isJAXBAnnotation(Annotation ann)
An annotation is handled if it's in the same package as @XmlElement, including subpackages. |
com.fasterxml.jackson.core.Version |
version()
Method that will return version information stored in and read from jar that contains this class. |
Methods inherited from class com.fasterxml.jackson.databind.AnnotationIntrospector |
---|
allIntrospectors, allIntrospectors, findDeserializationKeyType, findDeserializationName, findFilterId, findFormat, findFormat, findInjectableValueId, findKeySerializer, findNamingStrategy, findPOJOBuilder, findPOJOBuilderConfig, findPropertiesToIgnore, findReferenceType, findSerializationContentType, findSerializationKeyType, findSerializationTyping, findUnwrappingNameTransformer, findValueInstantiator, findViews, hasAnyGetterAnnotation, isAnnotationBundle, isHandled, isTypeId, nopInstance, pair |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final boolean DEFAULT_IGNORE_XMLIDREF
protected static final String MARKER_FOR_DEFAULT
protected final String _jaxbPackageName
protected final com.fasterxml.jackson.databind.JsonSerializer<?> _dataHandlerSerializer
protected final com.fasterxml.jackson.databind.JsonDeserializer<?> _dataHandlerDeserializer
protected final com.fasterxml.jackson.databind.type.TypeFactory _typeFactory
protected final boolean _ignoreXmlIDREF
Constructor Detail |
---|
@Deprecated public JaxbAnnotationIntrospector()
public JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config)
public JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.type.TypeFactory typeFactory)
public JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.type.TypeFactory typeFactory, boolean ignoreXmlIDREF)
typeFactory
- Type factory used for resolving type informationignoreXmlIDREF
- Whether XmlIDREF
annotation should be processed
JAXB style (meaning that references are always serialized using id), or
not (first reference as full POJO, others as ids)Method Detail |
---|
public com.fasterxml.jackson.core.Version version()
version
in interface com.fasterxml.jackson.core.Versioned
version
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.introspect.ObjectIdInfo findObjectIdInfo(com.fasterxml.jackson.databind.introspect.Annotated ann)
findObjectIdInfo
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.introspect.ObjectIdInfo findObjectReferenceInfo(com.fasterxml.jackson.databind.introspect.Annotated ann, com.fasterxml.jackson.databind.introspect.ObjectIdInfo base)
findObjectReferenceInfo
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.PropertyName findRootName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findRootName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Boolean findIgnoreUnknownProperties(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findIgnoreUnknownProperties
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Boolean isIgnorableType(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
isIgnorableType
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public boolean hasIgnoreMarker(com.fasterxml.jackson.databind.introspect.AnnotatedMember m)
hasIgnoreMarker
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.PropertyName findWrapperName(com.fasterxml.jackson.databind.introspect.Annotated ann)
findWrapperName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.introspect.VisibilityChecker<?> findAutoDetectVisibility(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac, com.fasterxml.jackson.databind.introspect.VisibilityChecker<?> checker)
findAutoDetectVisibility
in class com.fasterxml.jackson.databind.AnnotationIntrospector
protected javax.xml.bind.annotation.XmlAccessType findAccessType(com.fasterxml.jackson.databind.introspect.Annotated ac)
XmlAccessType
annotation value
for given annotated entity, if it has one, or inherits one from
its ancestors (in JAXB sense, package etc). Returns null if
nothing has been explicitly defined.
public com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> findTypeResolver(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.AnnotatedClass ac, com.fasterxml.jackson.databind.JavaType baseType)
findTypeResolver
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> findPropertyTypeResolver(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.AnnotatedMember am, com.fasterxml.jackson.databind.JavaType baseType)
findPropertyTypeResolver
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> findPropertyContentTypeResolver(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.AnnotatedMember am, com.fasterxml.jackson.databind.JavaType containerType)
findPropertyContentTypeResolver
in class com.fasterxml.jackson.databind.AnnotationIntrospector
protected com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> _typeResolverFromXmlElements(com.fasterxml.jackson.databind.introspect.AnnotatedMember am)
public List<com.fasterxml.jackson.databind.jsontype.NamedType> findSubtypes(com.fasterxml.jackson.databind.introspect.Annotated a)
findSubtypes
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public String findTypeName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findTypeName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.JsonSerializer<?> findSerializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findSerializer
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Object findContentSerializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findContentSerializer
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Class<?> findSerializationType(com.fasterxml.jackson.databind.introspect.Annotated a)
findSerializationType
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.annotation.JsonInclude.Include findSerializationInclusion(com.fasterxml.jackson.databind.introspect.Annotated a, com.fasterxml.jackson.annotation.JsonInclude.Include defValue)
findSerializationInclusion
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public String[] findSerializationPropertyOrder(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findSerializationPropertyOrder
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Boolean findSerializationSortAlphabetically(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findSerializationSortAlphabetically
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public com.fasterxml.jackson.databind.PropertyName findNameForSerialization(com.fasterxml.jackson.databind.introspect.Annotated a)
findNameForSerialization
in class com.fasterxml.jackson.databind.AnnotationIntrospector
@Deprecated public String findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
findSerializationName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
@Deprecated public String findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
findSerializationName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public boolean hasAsValueAnnotation(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
hasAsValueAnnotation
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public String findEnumValue(Enum<?> e)
!!! 12-Oct-2009, tatu: This is hideously slow implementation, called potentially for every single enum value being serialized. Should improve...
findEnumValue
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Object findDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findDeserializer
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Object findKeyDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findKeyDeserializer
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Object findContentDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findContentDeserializer
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Class<?> findDeserializationType(com.fasterxml.jackson.databind.introspect.Annotated a, com.fasterxml.jackson.databind.JavaType baseType)
findDeserializationType
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Class<?> findDeserializationContentType(com.fasterxml.jackson.databind.introspect.Annotated a, com.fasterxml.jackson.databind.JavaType baseContentType)
findDeserializationContentType
in class com.fasterxml.jackson.databind.AnnotationIntrospector
protected Class<?> _doFindDeserializationType(com.fasterxml.jackson.databind.introspect.Annotated a, com.fasterxml.jackson.databind.JavaType baseType)
public com.fasterxml.jackson.databind.PropertyName findNameForDeserialization(com.fasterxml.jackson.databind.introspect.Annotated a)
findNameForDeserialization
in class com.fasterxml.jackson.databind.AnnotationIntrospector
@Deprecated public String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
findDeserializationName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
@Deprecated public String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
findDeserializationName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public boolean hasAnySetterAnnotation(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
hasAnySetterAnnotation
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public boolean hasCreatorAnnotation(com.fasterxml.jackson.databind.introspect.Annotated am)
hasCreatorAnnotation
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public Boolean hasRequiredMarker(com.fasterxml.jackson.databind.introspect.AnnotatedMember m)
hasRequiredMarker
in class com.fasterxml.jackson.databind.AnnotationIntrospector
protected boolean isJAXBAnnotation(Annotation ann)
ann
- The annotation.
protected final com.fasterxml.jackson.databind.type.TypeFactory getTypeFactory()
protected javax.xml.bind.annotation.adapters.XmlAdapter<?,?> _findContentAdapter(com.fasterxml.jackson.databind.introspect.Annotated ann)
protected String _propertyNameToString(com.fasterxml.jackson.databind.PropertyName n)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |