Class JacksonXmlAnnotationIntrospector

  • All Implemented Interfaces:
    com.fasterxml.jackson.core.Versioned, com.fasterxml.jackson.databind.AnnotationIntrospector.XmlExtensions, XmlAnnotationIntrospector, java.io.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:
    Serialized Form
    • 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean _cfgDefaultUseWrapper  
      private static java.lang.Class<? extends java.lang.annotation.Annotation>[] ANNOTATIONS_TO_INFER_XML_PROP  
      static 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.
      private static long serialVersionUID  
      • Fields inherited from class com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector

        _annotationsInside, _cfgConstructorPropertiesImpliesCreator
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      protected com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> _constructStdTypeResolverBuilder​(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.annotation.JsonTypeInfo.Value typeInfo, com.fasterxml.jackson.databind.JavaType baseType)  
      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, java.util.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)  
      java.lang.String 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)  
      java.lang.Boolean isOutputAsAttribute​(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)  
      java.lang.Boolean isOutputAsCData​(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)  
      java.lang.Boolean isOutputAsText​(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config, com.fasterxml.jackson.databind.introspect.Annotated ann)  
      void setDefaultUseWrapper​(boolean b)  
      • 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, findDefaultEnumValue, findDeserializationContentConverter, findDeserializationConverter, findDeserializer, findEnumAliases, findEnumAliases, findEnumNamingStrategy, findEnumValue, findEnumValues, findEnumValues, findFilterId, findFormat, findImplicitPropertyName, findInjectableValue, findInjectableValueId, findKeyDeserializer, findKeySerializer, findMergeInfo, findNamingStrategy, findNullSerializer, findObjectIdInfo, findObjectReferenceInfo, findPOJOBuilder, findPOJOBuilderConfig, findPolymorphicTypeInfo, 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, findDefaultCreator, nopInstance, pair
      • Methods inherited from class java.lang.Object

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

      • ANNOTATIONS_TO_INFER_XML_PROP

        private static final java.lang.Class<? extends java.lang.annotation.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:
        Constant Field Values
      • _cfgDefaultUseWrapper

        protected boolean _cfgDefaultUseWrapper
    • Constructor Detail

      • JacksonXmlAnnotationIntrospector

        public JacksonXmlAnnotationIntrospector()
      • JacksonXmlAnnotationIntrospector

        public JacksonXmlAnnotationIntrospector​(boolean defaultUseWrapper)
    • Method Detail

      • 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 java.lang.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,
                                                java.util.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 java.lang.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 java.lang.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 java.lang.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
      • _constructStdTypeResolverBuilder

        protected com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?> _constructStdTypeResolverBuilder​(com.fasterxml.jackson.databind.cfg.MapperConfig<?> config,
                                                                                                                  com.fasterxml.jackson.annotation.JsonTypeInfo.Value typeInfo,
                                                                                                                  com.fasterxml.jackson.databind.JavaType baseType)
        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)