|
||||||||||
| 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 String |
_jaxbPackageName
|
protected com.fasterxml.jackson.databind.type.TypeFactory |
_typeFactory
|
protected static String |
MARKER_FOR_DEFAULT
|
| Constructor Summary | |
|---|---|
JaxbAnnotationIntrospector()
|
|
JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config)
|
|
JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.type.TypeFactory typeFactory)
|
|
| Method Summary | |
|---|---|
protected Class<?> |
_doFindDeserializationType(com.fasterxml.jackson.databind.introspect.Annotated a,
com.fasterxml.jackson.databind.JavaType baseType)
|
protected XmlAdapter<?,?> |
_findContentAdapter(com.fasterxml.jackson.databind.introspect.Annotated ann)
|
protected com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> |
_typeResolverFromXmlElements(com.fasterxml.jackson.databind.introspect.AnnotatedMember am)
|
protected 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)
|
String |
findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
|
String |
findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedParameter param)
|
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.introspect.ObjectIdInfo |
findObjectIdInfo(com.fasterxml.jackson.databind.introspect.Annotated ann)
|
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)
|
String |
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)
|
String |
findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
|
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)
|
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 |
isHandled(Annotation ann)
An annotation is handled if it's in the same package as @XmlElement, including subpackages. |
Boolean |
isIgnorableType(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
|
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, findFilterId, findFormat, findInjectableValueId, findKeySerializer, findPOJOBuilder, findPOJOBuilderConfig, findPropertiesToIgnore, findReferenceType, findSerializationContentType, findSerializationKeyType, findSerializationTyping, findUnwrappingNameTransformer, findValueInstantiator, findViews, hasAnyGetterAnnotation, hasRequiredMarker, isAnnotationBundle, 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 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
| Constructor Detail |
|---|
public JaxbAnnotationIntrospector()
public JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config)
public JaxbAnnotationIntrospector(com.fasterxml.jackson.databind.type.TypeFactory typeFactory)
| Method Detail |
|---|
public com.fasterxml.jackson.core.Version version()
version in interface com.fasterxml.jackson.core.Versionedversion in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic boolean isHandled(Annotation ann)
isHandled in class com.fasterxml.jackson.databind.AnnotationIntrospectorann - The annotation.
public com.fasterxml.jackson.databind.introspect.ObjectIdInfo findObjectIdInfo(com.fasterxml.jackson.databind.introspect.Annotated ann)
findObjectIdInfo in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic String 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.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 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 String findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
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 String findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
findSerializationName 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 String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
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 String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
findDeserializationName in class com.fasterxml.jackson.databind.AnnotationIntrospectorpublic String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedParameter param)
findDeserializationName in class com.fasterxml.jackson.databind.AnnotationIntrospectorprotected XmlAdapter<?,?> _findContentAdapter(com.fasterxml.jackson.databind.introspect.Annotated ann)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||