Class Model

java.lang.Object
com.sun.tools.xjc.model.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 Details

    • 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 Details

    • 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 Details

    • 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)
    • getSymbolSpace

      public SymbolSpace getSymbolSpace(String name)
    • 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>
    • beans

      public Map<NClass,CClassInfo> beans()
      Specified by:
      beans in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,NClass,Void,Void>
    • enums

      public Map<NClass,CEnumLeafInfo> enums()
      Specified by:
      enums in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,NClass,Void,Void>
    • typeUses

      public Map<QName,TypeUse> typeUses()
    • 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>
    • builtins

      public Map<NType,? extends CBuiltinLeafInfo> builtins()
      Specified by:
      builtins 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>
    • getElementInfo

      public CElementInfo getElementInfo(NClass scope, QName name)
      Specified by:
      getElementInfo in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,NClass,Void,Void>
    • getElementMappings

      public Map<QName,CElementInfo> getElementMappings(NClass scope)
      Specified by:
      getElementMappings 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.
    • getCustomizations

      public CCustomizations getCustomizations()
      Gets the global customizations.
      Specified by:
      getCustomizations in interface CCustomizable
      Returns:
      can be an empty list but never be null. The returned list is read-only. Do not modify.
      See Also:
    • 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 javax.xml.bind.annotation.XmlNsForm getElementFormDefault(String nsUri)
      Specified by:
      getElementFormDefault in interface com.sun.xml.bind.v2.model.core.TypeInfoSet<NType,NClass,Void,Void>
    • getAttributeFormDefault

      public javax.xml.bind.annotation.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>
    • getPackage

      public CClassInfoParent.Package getPackage(JPackage pkg)