|
||||||||||
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.Versioned
version
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public boolean isHandled(Annotation ann)
isHandled
in class com.fasterxml.jackson.databind.AnnotationIntrospector
ann
- The annotation.
public com.fasterxml.jackson.databind.introspect.ObjectIdInfo findObjectIdInfo(com.fasterxml.jackson.databind.introspect.Annotated ann)
findObjectIdInfo
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public String 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.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 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 String findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
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 String findSerializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
findSerializationName
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 String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedMethod am)
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 String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedField af)
findDeserializationName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
public String findDeserializationName(com.fasterxml.jackson.databind.introspect.AnnotatedParameter param)
findDeserializationName
in class com.fasterxml.jackson.databind.AnnotationIntrospector
protected 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 |