Class CClassInfo

  • All Implemented Interfaces:
    CClass, CClassInfoParent, CCustomizable, CElement, CNonElement, CTypeInfo, com.sun.tools.xjc.model.nav.NClass, com.sun.tools.xjc.model.nav.NType, TypeUse, Locatable, ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>, Element<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>, MaybeElement<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>, NonElement<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>, TypeInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>

    public final class CClassInfo
    extends Object
    implements ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>, CClassInfoParent, CClass, com.sun.tools.xjc.model.nav.NClass
    Mutable ClassInfo representation.

    Schema parsers build these objects.

    Author:
    Kohsuke Kawaguchi
    • Field Detail

      • javadoc

        public String javadoc
        TODO: revisit this design. we should at least do a basic encapsulation to avoid careless mistakes. Maybe we should even differ the javadoc generation by queueing runners.
      • shortName

        public final String shortName
        short name.
      • model

        public final Model model
        The Model object to which this bean belongs.
    • Method Detail

      • hasAttributeWildcard

        public boolean hasAttributeWildcard()
        Specified by:
        hasAttributeWildcard in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • hasAttributeWildcard

        public void hasAttributeWildcard​(boolean hasAttributeWildcard)
      • hasSubClasses

        public boolean hasSubClasses()
        Specified by:
        hasSubClasses in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • declaresAttributeWildcard

        public boolean declaresAttributeWildcard()
        Returns true if a new attribute wildcard property needs to be declared on this class.
        Specified by:
        declaresAttributeWildcard in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • inheritsAttributeWildcard

        public boolean inheritsAttributeWildcard()
        Returns true if this class inherits a wildcard attribute property from its ancestor classes.
        Specified by:
        inheritsAttributeWildcard in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • getClazz

        public com.sun.tools.xjc.model.nav.NClass getClazz()
        Specified by:
        getClazz in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • getScope

        public CClassInfo getScope()
        Specified by:
        getScope in interface Element<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • getName

        public String getName()
        Specified by:
        getName in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • getSqueezedName

        public String getSqueezedName()
        Returns the "squeezed name" of this bean token.

        The squeezed name of a bean is the concatenation of the names of its outer classes and itself.

        Thus if the bean is "org.acme.foo.Bean", then the squeezed name is "Bean", if the bean is "org.acme.foo.Outer1.Outer2.Bean", then "Outer1Outer2Bean".

        This is used by the code generator

      • getProperties

        public List<CPropertyInfo> getProperties()
        Returns a mutable list.
        Specified by:
        getProperties in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • hasValueProperty

        public boolean hasValueProperty()
        Specified by:
        hasValueProperty in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • getProperty

        public CPropertyInfo getProperty​(String name)
        Gets a propery by name.
        Specified by:
        getProperty in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • hasProperties

        public boolean hasProperties()
        Specified by:
        hasProperties in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • isElement

        public boolean isElement()
        Specified by:
        isElement in interface MaybeElement<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • asElement

        public Element<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass> asElement()
        Specified by:
        asElement in interface MaybeElement<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • isOrdered

        public boolean isOrdered()
        Specified by:
        isOrdered in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • isFinal

        public boolean isFinal()
        Deprecated.
        if you are calling this method directly, you must be doing something wrong.
        Specified by:
        isFinal in interface ClassInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • setOrdered

        public void setOrdered​(boolean value)
      • getElementName

        public QName getElementName()
        Specified by:
        getElementName in interface Element<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
        Specified by:
        getElementName in interface MaybeElement<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • getTypeName

        public QName getTypeName()
        Specified by:
        getTypeName in interface NonElement<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • isSimpleType

        public boolean isSimpleType()
        Specified by:
        isSimpleType in interface NonElement<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • fullName

        public String fullName()
        Returns the FQCN of this bean.
        Specified by:
        fullName in interface CClassInfoParent
        Specified by:
        fullName in interface com.sun.tools.xjc.model.nav.NType
      • setUserSpecifiedImplClass

        public void setUserSpecifiedImplClass​(String implClass)
      • getUserSpecifiedImplClass

        public String getUserSpecifiedImplClass()
      • addProperty

        public void addProperty​(CPropertyInfo prop)
        Adds a new property.
      • setBaseClass

        public void setBaseClass​(CClass base)
        This method accepts both CClassInfo (which means the base class is also generated), or CClassRef (which means the base class is already generated and simply referenced.) The latter is treated somewhat special --- from the rest of the model this external base class is invisible. This modeling might need more thoughts to get right.
      • getRefBaseClass

        public CClassRef getRefBaseClass()
      • listSubclasses

        public Iterator<CClassInfo> listSubclasses()
        Enumerates all the sub-classes of this class.
      • getSubstitutionHead

        public CClassInfo getSubstitutionHead()
        Specified by:
        getSubstitutionHead in interface Element<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • _implements

        public void _implements​(JClass c)
      • addConstructor

        public void addConstructor​(String... fieldNames)
        Creates a new constructor declaration and adds it.
      • getConstructors

        public Collection<? extends Constructor> getConstructors()
        list all constructor declarations.
      • getType

        public final com.sun.tools.xjc.model.nav.NClass getType()
        Specified by:
        getType in interface TypeInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • toType

        public final JClass toType​(Outline o,
                                   Aspect aspect)
        Description copied from interface: CTypeInfo
        Returns the JClass that represents the class being bound, under the given Outline.
        Specified by:
        toType in interface CTypeInfo
        Specified by:
        toType in interface com.sun.tools.xjc.model.nav.NClass
        Specified by:
        toType in interface com.sun.tools.xjc.model.nav.NType
        aspect - If Aspect.IMPLEMENTATION, this method returns the implementation specific class that this type represents. If Aspect.EXPOSED, this method returns the publicly exposed type that this type represents. For ordinary classes, the aspect parameter is meaningless.
        See Also:
        NType.toType(Outline, com.sun.tools.xjc.outline.Aspect)
      • isBoxedType

        public boolean isBoxedType()
        Description copied from interface: com.sun.tools.xjc.model.nav.NType
        Returns true iff this type represents a class that has a unboxed form. For example, for String this is false, but for Integer this is true.
        Specified by:
        isBoxedType in interface com.sun.tools.xjc.model.nav.NType
      • getLocator

        public Locator getLocator()
        Description copied from interface: CCustomizable
        Gets the source location in the schema from which this model component is created.
        Specified by:
        getLocator in interface CCustomizable
        Returns:
        never null.
      • isAbstract

        public boolean isAbstract()
        Description copied from interface: CElement
        Returns true iff this element is an abstract element.
        Specified by:
        isAbstract in interface CElement
      • setAbstract

        public void setAbstract()
        Description copied from interface: CElement
        Marks this element as an abstract element.
        Specified by:
        setAbstract in interface CElement
      • isCollection

        public final boolean isCollection()
      • getAdapterUse

        public final CAdapter getAdapterUse()
      • idUse

        public final ID idUse()
      • getSchemaComponent

        public final XSComponent getSchemaComponent()
        Description copied from interface: CCustomizable
        If this model object is built from XML Schema, this property returns a schema component from which the model is built.
        Specified by:
        getSchemaComponent in interface CCustomizable
        Returns:
        null if the model is built from sources other than XML Schema (such as DTD.)
      • canBeReferencedByIDREF

        public final boolean canBeReferencedByIDREF()
        Deprecated.
        why are you calling an unimplemented method?
        Specified by:
        canBeReferencedByIDREF in interface TypeInfo<com.sun.tools.xjc.model.nav.NType,​com.sun.tools.xjc.model.nav.NClass>
      • getExpectedMimeType

        public javax.activation.MimeType getExpectedMimeType()
        No default MimeType.