Class Model

  • All Implemented Interfaces:
    CCustomizable, com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>

    public final class Model
    extends Object
    implements com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>, CCustomizable
    Root of the object model that represents the code that needs to be generated.

    A Model is a schema language neutral representation of the result of a schema parsing. The back-end then works against this model to turn this into a series of Java source code.

    Author:
    Kohsuke Kawaguchi
    • Field Detail

      • schemaComponent

        public final XSSchemaSet schemaComponent
        If this model was built from XML Schema, this field stores the root object of the parse schema model. Otherwise null.
        Since:
        2.1.1
      • codeModel

        public final JCodeModel codeModel
        This model uses this code model exclusively.
      • options

        public final Options options
        Command-line options used for building this model.
      • serializable

        public boolean serializable
        True to generate serializable classes.
      • serialVersionUID

        public Long serialVersionUID
        serial version UID to be generated. null if not to generate serialVersionUID field.
      • rootClass

        public JClass rootClass
        If non-null, all the generated classes should eventually derive from this class.
      • rootInterface

        public JClass rootInterface
        If non-null, all the generated interfaces should eventually derive from this interface.
      • strategy

        public ImplStructureStrategy strategy
        Specifies the code generation strategy. Must not be null.
      • defaultSymbolSpace

        public final SymbolSpace defaultSymbolSpace
        Default ID/IDREF symbol space. Any ID/IDREF without explicit reference to a symbol space is assumed to use this default symbol space.
    • Constructor Detail

      • Model

        public Model​(Options opts,
                     JCodeModel cm,
                     com.sun.xml.bind.api.impl.NameConverter nc,
                     ClassNameAllocator allocator,
                     XSSchemaSet schemaComponent)
        Parameters:
        nc - Usually this should be set in the constructor, but we do allow this parameter to be initially null, and then set later.
        schemaComponent - The source schema model, if this is built from XSD.
    • Method Detail

      • setNameConverter

        public void setNameConverter​(com.sun.xml.bind.api.impl.NameConverter nameConverter)
      • getNameConverter

        public final com.sun.xml.bind.api.impl.NameConverter getNameConverter()
        Gets the name converter that shall be used to parse XML names into Java names.
      • isPackageLevelAnnotations

        public boolean isPackageLevelAnnotations()
      • setPackageLevelAnnotations

        public void setPackageLevelAnnotations​(boolean packageLevelAnnotations)
      • generateCode

        public Outline generateCode​(Options opt,
                                    ErrorReceiver receiver)
        Fully-generate the source code into the given model.
        Returns:
        null if there was any errors. Otherwise it returns a valid Outline object, which captures how the model objects are mapped to the generated source code.

        Add-ons can use those information to further augment the generated source code.

      • createTopLevelBindings

        public final Map<QName,​CClassInfo> createTopLevelBindings()
        Represents the "top-level binding".

        This is used to support the use of a schema inside WSDL. For XML Schema, the top-level binding is a map from global element declarations to its representation class.

        For other schema languages, it should follow the appendices in WSDL (but in practice no one would use WSDL with a schema language other than XML Schema, so it doesn't really matter.)

        This needs to be filled by the front-end.

      • getNavigator

        public com.sun.xml.bind.v2.model.nav.Navigator<NType,​NClass,​Void,​Void> getNavigator()
        Specified by:
        getNavigator in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getTypeInfo

        public CNonElement getTypeInfo​(NType type)
        Specified by:
        getTypeInfo in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getAnyTypeInfo

        public CBuiltinLeafInfo getAnyTypeInfo()
        Specified by:
        getAnyTypeInfo in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getTypeInfo

        public CNonElement getTypeInfo​(com.sun.xml.bind.v2.model.core.Ref<NType,​NClass> ref)
        Specified by:
        getTypeInfo in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • arrays

        public Map<NType,​? extends CArrayInfo> arrays()
        No array mapping generation for XJC.
        Specified by:
        arrays in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getClassInfo

        public CClassInfo getClassInfo​(NClass t)
        Specified by:
        getClassInfo in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getAllElements

        public Iterable<? extends CElementInfo> getAllElements()
        Specified by:
        getAllElements in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getSchemaComponent

        public XSComponent getSchemaComponent()
        Deprecated.
        Always return null. Perhaps you are interested in schemaComponent?
        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.)
      • getLocator

        public Locator getLocator()
        Deprecated.
        No line number available for the "root" component.
        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.
      • getXmlNs

        public Map<String,​String> getXmlNs​(String namespaceUri)
        Not implemented in the compile-time model.
        Specified by:
        getXmlNs in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getSchemaLocations

        public Map<String,​String> getSchemaLocations()
        Specified by:
        getSchemaLocations in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getElementFormDefault

        public XmlNsForm getElementFormDefault​(String nsUri)
        Specified by:
        getElementFormDefault in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • getAttributeFormDefault

        public XmlNsForm getAttributeFormDefault​(String nsUri)
        Specified by:
        getAttributeFormDefault in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>
      • dump

        public void dump​(Result out)
        Specified by:
        dump in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,​NClass,​Void,​Void>