|
||||||||||
| 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.Versionedversion in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic 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.AnnotationIntrospectorpublic com.fasterxml.jackson.databind.PropertyName findRootName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findRootName in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic Boolean findIgnoreUnknownProperties(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findIgnoreUnknownProperties in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic Boolean isIgnorableType(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
isIgnorableType in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic boolean hasIgnoreMarker(com.fasterxml.jackson.databind.introspect.AnnotatedMember m)
hasIgnoreMarker in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic 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.AnnotationIntrospectorprotected 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.AnnotationIntrospectorprotected 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.AnnotationIntrospectorpublic String findTypeName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findTypeName in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic com.fasterxml.jackson.databind.JsonSerializer<?> findSerializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findSerializer in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic Object findContentSerializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findContentSerializer in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic 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.AnnotationIntrospectorpublic String[] findSerializationPropertyOrder(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findSerializationPropertyOrder in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic Boolean findSerializationSortAlphabetically(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
findSerializationSortAlphabetically in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic 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.AnnotationIntrospectorpublic boolean hasAsValueAnnotation(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
hasAsValueAnnotation in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic 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.AnnotationIntrospectorpublic Object findDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findDeserializer in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic Object findKeyDeserializer(com.fasterxml.jackson.databind.introspect.Annotated am)
findKeyDeserializer in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic 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.AnnotationIntrospectorpublic boolean hasAnySetterAnnotation(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
hasAnySetterAnnotation in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic boolean hasCreatorAnnotation(com.fasterxml.jackson.databind.introspect.Annotated am)
hasCreatorAnnotation in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic Boolean hasRequiredMarker(com.fasterxml.jackson.databind.introspect.AnnotatedMember m)
hasRequiredMarker in class com.fasterxml.jackson.databind.AnnotationIntrospectorprotected 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 | ||||||||||