Class ClassInfoImpl<T,​C,​F,​M>

    • Field Detail

      • clazz

        protected final C clazz
      • attributeWildcard

        protected com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> attributeWildcard
        If this class has a declared (not inherited) attribute wildcard, keep the reference to it. This parameter is initialized at the construction time and never change.
      • owner

        protected final com.sun.xml.bind.v2.model.impl.TypeInfoSetImpl<TypeT,​ClassDeclT,​FieldT,​MethodT> owner
        TypeInfoSet to which this class belongs.
    • Method Detail

      • getSubstitutionHead

        public final Element<T,​C> getSubstitutionHead()
        If this element can substitute another element, return that element.

        Substitutability of elements are transitive. The substitution hierarchy is the same as the inheritance hierarchy.

        Specified by:
        getSubstitutionHead in interface Element<T,​C>
        Returns:
        null if no such element exists.
      • getClazz

        public final C getClazz()
        Description copied from interface: ClassInfo
        Gets the declaration this object is wrapping.
        Specified by:
        getClazz in interface ClassInfo<T,​C>
      • getType

        public final T getType()
        Description copied from interface: TypeInfo
        Gets the underlying Java type that object represents.
        Specified by:
        getType in interface TypeInfo<T,​C>
        Returns:
        always non-null.
      • getName

        public final String getName()
        Description copied from interface: ClassInfo
        Gets the fully-qualified name of the class.
        Specified by:
        getName in interface ClassInfo<T,​C>
      • readAnnotation

        public <A extends Annotation> A readAnnotation​(Class<A> a)
      • getProperties

        public List<? extends PropertyInfo<T,​C>> getProperties()
        Description copied from interface: ClassInfo
        Returns all the properties newly declared in this class.

        This excludes properties defined in the super class.

        If the properties are ordered, it will be returned in the order that appear in XML. Otherwise it will be returned in no particular order.

        Properties marked with XmlTransient will not show up in this list. As far as JAXB is concerned, they are considered non-existent.

        Specified by:
        getProperties in interface ClassInfo<T,​C>
        Returns:
        always non-null, but can be empty.
      • hasValueProperty

        public final boolean hasValueProperty()
        Description copied from interface: ClassInfo
        Returns true if this class or its ancestor has XmlValue property.
        Specified by:
        hasValueProperty in interface ClassInfo<T,​C>
      • getProperty

        public PropertyInfo<T,​C> getProperty​(String name)
        Description copied from interface: ClassInfo
        Gets the property that has the specified name.

        This is just a convenience method for:

         for( PropertyInfo p : getProperties() ) {
           if(p.getName().equals(name))
             return p;
         }
         return null;
         
        Specified by:
        getProperty in interface ClassInfo<T,​C>
        Returns:
        null if the property was not found.
        See Also:
        PropertyInfo.getName()
      • checkFieldXmlLocation

        protected void checkFieldXmlLocation​(F f)
        This hook is used by RuntimeClassInfoImpl to look for XmlLocation.
      • hasProperties

        public boolean hasProperties()
        Description copied from interface: ClassInfo
        If the class has properties, return true. This is only true if the Collection object returned by ClassInfo.getProperties() is not empty.
        Specified by:
        hasProperties in interface ClassInfo<T,​C>
      • createReferenceProperty

        protected com.sun.xml.bind.v2.model.impl.ReferencePropertyInfoImpl<T,​C,​F,​M> createReferenceProperty​(com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> seed)
      • createAttributeProperty

        protected com.sun.xml.bind.v2.model.impl.AttributePropertyInfoImpl<T,​C,​F,​M> createAttributeProperty​(com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> seed)
      • createValueProperty

        protected com.sun.xml.bind.v2.model.impl.ValuePropertyInfoImpl<T,​C,​F,​M> createValueProperty​(com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> seed)
      • createElementProperty

        protected com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl<T,​C,​F,​M> createElementProperty​(com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> seed)
      • createMapProperty

        protected com.sun.xml.bind.v2.model.impl.MapPropertyInfoImpl<T,​C,​F,​M> createMapProperty​(com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> seed)
      • createFieldSeed

        protected com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> createFieldSeed​(F f)
        Creates a new FieldPropertySeed object.

        Derived class can override this method to create a sub-class.

      • createAccessorSeed

        protected com.sun.xml.bind.v2.model.impl.PropertySeed<T,​C,​F,​M> createAccessorSeed​(M getter,
                                                                                                            M setter)
        Creates a new GetterSetterPropertySeed object.
      • isElement

        public final boolean isElement()
        Description copied from interface: MaybeElement
        If the class is bound to an element, return true.

        Note that when this is true, the class is bound to both an element and a type.

        Specified by:
        isElement in interface MaybeElement<T,​C>
      • isAbstract

        public boolean isAbstract()
        Description copied from interface: ClassInfo
        If this class is abstract and thus shall never be directly instanciated.
        Specified by:
        isAbstract in interface ClassInfo<T,​C>
      • isOrdered

        public boolean isOrdered()
        Description copied from interface: ClassInfo
        Returns true if the properties of this class is ordered in XML. False if it't not.

        In RELAX NG context, ordered properties mean <group> and unordered properties mean <interleave>.

        Specified by:
        isOrdered in interface ClassInfo<T,​C>
      • isFinal

        public final boolean isFinal()
        Description copied from interface: ClassInfo
        If this class is marked as final and no further extension/restriction is allowed.
        Specified by:
        isFinal in interface ClassInfo<T,​C>
      • hasSubClasses

        public final boolean hasSubClasses()
        Description copied from interface: ClassInfo
        True if there's a known sub-type of this class in TypeInfoSet.
        Specified by:
        hasSubClasses in interface ClassInfo<T,​C>
      • hasAttributeWildcard

        public final boolean hasAttributeWildcard()
        Description copied from interface: ClassInfo
        Returns true if this bean class has an attribute wildcard.

        This is true if the class declares an attribute wildcard, or it is inherited from its super classes.

        Specified by:
        hasAttributeWildcard in interface ClassInfo<T,​C>
        See Also:
        ClassInfo.inheritsAttributeWildcard()
      • inheritsAttributeWildcard

        public final boolean inheritsAttributeWildcard()
        Description copied from interface: ClassInfo
        Returns true iff this class inherits a wildcard attribute from its ancestor classes.
        Specified by:
        inheritsAttributeWildcard in interface ClassInfo<T,​C>
      • declaresAttributeWildcard

        public final boolean declaresAttributeWildcard()
        Description copied from interface: ClassInfo
        Returns true iff this class declares a wildcard attribute.
        Specified by:
        declaresAttributeWildcard in interface ClassInfo<T,​C>
      • getTypeName

        public final QName getTypeName()
        Description copied from interface: NonElement
        Gets the primary XML type ANYTYPE_NAME of the class.

        A Java type can be mapped to multiple XML types, but one of them is considered "primary" and used when we generate a schema.

        Specified by:
        getTypeName in interface NonElement<T,​C>
        Returns:
        null if the object doesn't have an explicit type ANYTYPE_NAME (AKA anonymous.)
      • isSimpleType

        public final boolean isSimpleType()
        Description copied from interface: NonElement
        Returns true if this NonElement maps to text in XML, without any attribute nor child elements.
        Specified by:
        isSimpleType in interface NonElement<T,​C>
      • getLocation

        public Location getLocation()
        Description copied from interface: Locatable
        Gets the location object that this object points to. This operation could be inefficient and costly.
        Specified by:
        getLocation in interface Locatable
      • getFactoryMethod

        public Method getFactoryMethod()
      • nav

        protected final Navigator<TypeT,​ClassDeclT,​FieldT,​MethodT> nav()
      • reader

        protected final AnnotationReader<TypeT,​ClassDeclT,​FieldT,​MethodT> reader()
      • parseElementName

        protected final QName parseElementName​(ClassDeclT clazz)
        Parses an XmlRootElement annotation on a class and determine the element name.
        Returns:
        null if none was found.
      • parseTypeName

        protected final QName parseTypeName​(ClassDeclT clazz)
      • parseTypeName

        protected final QName parseTypeName​(ClassDeclT clazz,
                                            XmlType t)
        Parses a (potentially-null) XmlType annotation on a class and determine the actual value.
        Parameters:
        clazz - The class on which the XmlType annotation is checked.
        t - The XmlType annotation on the clazz. This value is taken as a parameter to improve the performance for the case where 't' is pre-computed.