Class JacksonXmlAnnotationIntrospector

java.lang.Object
com.fasterxml.jackson.databind.AnnotationIntrospector
com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector
com.fasterxml.jackson.dataformat.xml.JacksonXmlAnnotationIntrospector
All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned, com.fasterxml.jackson.databind.AnnotationIntrospector.XmlExtensions, XmlAnnotationIntrospector, Serializable

public class JacksonXmlAnnotationIntrospector extends com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector implements XmlAnnotationIntrospector
Extension of JacksonAnnotationIntrospector that is needed to support additional xml-specific annotation that Jackson provides. Note, however, that there is no JAXB annotation support here; that is provided with separate introspector (see https://github.com/FasterXML/jackson-modules-base/tree/master/jaxb, class com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector).
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.AnnotationIntrospector

    com.fasterxml.jackson.databind.AnnotationIntrospector.ReferenceProperty, com.fasterxml.jackson.databind.AnnotationIntrospector.XmlExtensions

    Nested classes/interfaces inherited from interface com.fasterxml.jackson.dataformat.xml.XmlAnnotationIntrospector

    XmlAnnotationIntrospector.Pair
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected boolean
     
    private static final Class<? extends Annotation>[]
     
    static final boolean
    For backwards compatibility with 2.0, the default behavior is to assume use of List wrapper if no annotations are used.
    private static final long
     

    Fields inherited from class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector

    _annotationsInside, _cfgConstructorPropertiesImpliesCreator
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    JacksonXmlAnnotationIntrospector(boolean defaultUseWrapper)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder
    We will override this method so that we can return instance that cleans up type id property name to be a valid xml name.
    protected com.fasterxml.jackson.databind.PropertyName
    _findXmlName(com.fasterxml.jackson.databind.introspect.Annotated a)
     
    void
    findAndAddVirtualProperties(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.AnnotatedClass ac, List<com.fasterxml.jackson.databind.ser.BeanPropertyWriter> properties)
    Due to issue [dataformat-xml#578] need to suppress calls to this method to avoid duplicate virtual properties from being added.
    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)
     
    findNamespace(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
     
    com.fasterxml.jackson.databind.PropertyName
    findRootName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
     
    com.fasterxml.jackson.databind.PropertyName
    findWrapperName(com.fasterxml.jackson.databind.introspect.Annotated ann)
     
    isOutputAsAttribute(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
     
    isOutputAsCData(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
     
    isOutputAsText(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
     
    void
     

    Methods inherited from class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector

    _classIfExplicit, _classIfExplicit, _constructNoTypeResolverBuilder, _constructVirtualProperty, _constructVirtualProperty, _findConstructorName, _findTypeResolver, _isIgnorable, _propertyName, findAutoDetectVisibility, findClassDescription, findContentDeserializer, findContentSerializer, findCreatorAnnotation, findCreatorBinding, findDefaultEnumValue, findDeserializationContentConverter, findDeserializationConverter, findDeserializer, findEnumAliases, findEnumNamingStrategy, findEnumValue, findEnumValues, findFilterId, findFormat, findImplicitPropertyName, findInjectableValue, findInjectableValueId, findKeyDeserializer, findKeySerializer, findMergeInfo, findNamingStrategy, findNullSerializer, findObjectIdInfo, findObjectReferenceInfo, findPOJOBuilder, findPOJOBuilderConfig, findPropertyAccess, findPropertyAliases, findPropertyContentTypeResolver, findPropertyDefaultValue, findPropertyDescription, findPropertyIgnoralByName, findPropertyIgnorals, findPropertyInclusion, findPropertyInclusionByName, findPropertyIndex, findPropertyTypeResolver, findReferenceType, findRenameByField, findSerializationContentConverter, findSerializationConverter, findSerializationPropertyOrder, findSerializationSortAlphabetically, findSerializationTyping, findSerializer, findSetterInfo, findSubtypes, findTypeName, findTypeResolver, findUnwrappingNameTransformer, findValueInstantiator, findViews, hasAnyGetter, hasAnyGetterAnnotation, hasAnySetter, hasAnySetterAnnotation, hasAsKey, hasAsValue, hasAsValueAnnotation, hasCreatorAnnotation, hasIgnoreMarker, hasRequiredMarker, isAnnotationBundle, isIgnorableType, isTypeId, readResolve, refineDeserializationType, refineSerializationType, resolveSetterConflict, setConstructorPropertiesImpliesCreator, version

    Methods inherited from class com.fasterxml.jackson.databind.AnnotationIntrospector

    _findAnnotation, _hasAnnotation, _hasOneOf, allIntrospectors, allIntrospectors, findIgnoreUnknownProperties, findPropertiesToIgnore, nopInstance, pair

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • ANNOTATIONS_TO_INFER_XML_PROP

      private static final Class<? extends Annotation>[] ANNOTATIONS_TO_INFER_XML_PROP
    • DEFAULT_USE_WRAPPER

      public static final boolean DEFAULT_USE_WRAPPER
      For backwards compatibility with 2.0, the default behavior is to assume use of List wrapper if no annotations are used.
      See Also:
    • _cfgDefaultUseWrapper

      protected boolean _cfgDefaultUseWrapper
  • Constructor Details

    • JacksonXmlAnnotationIntrospector

      public JacksonXmlAnnotationIntrospector()
    • JacksonXmlAnnotationIntrospector

      public JacksonXmlAnnotationIntrospector(boolean defaultUseWrapper)
  • Method Details

    • setDefaultUseWrapper

      public void setDefaultUseWrapper(boolean b)
    • findWrapperName

      public com.fasterxml.jackson.databind.PropertyName findWrapperName(com.fasterxml.jackson.databind.introspect.Annotated ann)
      Overrides:
      findWrapperName in class com.fasterxml.jackson.databind.AnnotationIntrospector
    • findRootName

      public com.fasterxml.jackson.databind.PropertyName findRootName(com.fasterxml.jackson.databind.introspect.AnnotatedClass ac)
      Overrides:
      findRootName in class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector
    • findNamespace

      public String findNamespace(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
      Specified by:
      findNamespace in interface com.fasterxml.jackson.databind.AnnotationIntrospector.XmlExtensions
    • findAndAddVirtualProperties

      public void findAndAddVirtualProperties(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.AnnotatedClass ac, List<com.fasterxml.jackson.databind.ser.BeanPropertyWriter> properties)
      Due to issue [dataformat-xml#578] need to suppress calls to this method to avoid duplicate virtual properties from being added. Not elegant but .. works.
      Overrides:
      findAndAddVirtualProperties in class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector
      Since:
      2.15
    • isOutputAsAttribute

      public Boolean isOutputAsAttribute(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
      Specified by:
      isOutputAsAttribute in interface com.fasterxml.jackson.databind.AnnotationIntrospector.XmlExtensions
    • isOutputAsText

      public Boolean isOutputAsText(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
      Specified by:
      isOutputAsText in interface com.fasterxml.jackson.databind.AnnotationIntrospector.XmlExtensions
    • isOutputAsCData

      public Boolean isOutputAsCData(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)
      Specified by:
      isOutputAsCData in interface com.fasterxml.jackson.databind.AnnotationIntrospector.XmlExtensions
    • findNameForSerialization

      public com.fasterxml.jackson.databind.PropertyName findNameForSerialization(com.fasterxml.jackson.databind.introspect.Annotated a)
      Overrides:
      findNameForSerialization in class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector
    • findNameForDeserialization

      public com.fasterxml.jackson.databind.PropertyName findNameForDeserialization(com.fasterxml.jackson.databind.introspect.Annotated a)
      Overrides:
      findNameForDeserialization in class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector
    • _constructStdTypeResolverBuilder

      protected com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder _constructStdTypeResolverBuilder()
      We will override this method so that we can return instance that cleans up type id property name to be a valid xml name.
      Overrides:
      _constructStdTypeResolverBuilder in class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector
    • _findXmlName

      protected com.fasterxml.jackson.databind.PropertyName _findXmlName(com.fasterxml.jackson.databind.introspect.Annotated a)