public final class Model extends java.lang.Object implements TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>, CCustomizable
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.
Modifier and Type | Field and Description |
---|---|
com.sun.codemodel.JCodeModel |
codeModel
This model uses this code model exclusively.
|
SymbolSpace |
defaultSymbolSpace
Default ID/IDREF symbol space.
|
Options |
options
Command-line options used for building this model.
|
com.sun.codemodel.JClass |
rootClass
If non-null, all the generated classes should eventually derive from this class.
|
com.sun.codemodel.JClass |
rootInterface
If non-null, all the generated interfaces should eventually derive from this interface.
|
com.sun.xml.xsom.XSSchemaSet |
schemaComponent
If this model was built from XML Schema, this field
stores the root object of the parse schema model.
|
boolean |
serializable
True to generate serializable classes.
|
java.lang.Long |
serialVersionUID
serial version UID to be generated.
|
ImplStructureStrategy |
strategy
Specifies the code generation strategy.
|
Constructor and Description |
---|
Model(Options opts,
com.sun.codemodel.JCodeModel cm,
NameConverter nc,
ClassNameAllocator allocator,
com.sun.xml.xsom.XSSchemaSet schemaComponent) |
Modifier and Type | Method and Description |
---|---|
java.util.Map<NType,? extends CArrayInfo> |
arrays()
No array mapping generation for XJC.
|
java.util.Map<NClass,CClassInfo> |
beans()
Returns all the
ClassInfo s known to this set. |
java.util.Map<NType,? extends CBuiltinLeafInfo> |
builtins()
Returns all the
BuiltinLeafInfo s known to this set. |
java.util.Map<javax.xml.namespace.QName,CClassInfo> |
createTopLevelBindings()
Represents the "top-level binding".
|
void |
dump(javax.xml.transform.Result out)
Dumps this model into XML.
|
java.util.Map<NClass,CEnumLeafInfo> |
enums()
Returns all the
EnumLeafInfo s known to this set. |
Outline |
generateCode(Options opt,
ErrorReceiver receiver)
Fully-generate the source code into the given model.
|
java.lang.Iterable<? extends CElementInfo> |
getAllElements()
Returns all the
ElementInfo known to this set. |
CBuiltinLeafInfo |
getAnyTypeInfo()
Gets the
TypeInfo for the any type. |
javax.xml.bind.annotation.XmlNsForm |
getAttributeFormDefault(java.lang.String nsUri)
Gets the reasonable
XmlNsForm for the given namespace URI. |
CClassInfo |
getClassInfo(NClass t)
|
CCustomizations |
getCustomizations()
Gets the global customizations.
|
javax.xml.bind.annotation.XmlNsForm |
getElementFormDefault(java.lang.String nsUri)
Gets the reasonable
XmlNsForm for the given namespace URI. |
CElementInfo |
getElementInfo(NClass scope,
javax.xml.namespace.QName name)
Returns a
ElementInfo for the given element. |
java.util.Map<javax.xml.namespace.QName,CElementInfo> |
getElementMappings(NClass scope)
Returns all
ElementInfo s in the given scope. |
org.xml.sax.Locator |
getLocator()
Deprecated.
No line number available for the "root" component.
|
NameConverter |
getNameConverter()
Gets the name converter that shall be used to parse XML names into Java names.
|
Navigator<NType,NClass,java.lang.Void,java.lang.Void> |
getNavigator()
Navigator for this model. |
CClassInfoParent.Package |
getPackage(com.sun.codemodel.JPackage pkg) |
com.sun.xml.xsom.XSComponent |
getSchemaComponent()
Deprecated.
Always return null. Perhaps you are interested in
schemaComponent ? |
java.util.Map<java.lang.String,java.lang.String> |
getSchemaLocations()
Gets
XmlSchema.location() found in this context. |
SymbolSpace |
getSymbolSpace(java.lang.String name) |
CNonElement |
getTypeInfo(NType type)
Returns a
TypeInfo for the given type. |
CNonElement |
getTypeInfo(Ref<NType,NClass> ref)
Returns a type information for the given reference.
|
java.util.Map<java.lang.String,java.lang.String> |
getXmlNs(java.lang.String namespaceUri)
Not implemented in the compile-time model.
|
boolean |
isPackageLevelAnnotations() |
void |
setNameConverter(NameConverter nameConverter) |
void |
setPackageLevelAnnotations(boolean packageLevelAnnotations) |
java.util.Map<javax.xml.namespace.QName,TypeUse> |
typeUses() |
public final com.sun.xml.xsom.XSSchemaSet schemaComponent
public final com.sun.codemodel.JCodeModel codeModel
public final Options options
public boolean serializable
public java.lang.Long serialVersionUID
public com.sun.codemodel.JClass rootClass
public com.sun.codemodel.JClass rootInterface
public ImplStructureStrategy strategy
public final SymbolSpace defaultSymbolSpace
public Model(Options opts, com.sun.codemodel.JCodeModel cm, NameConverter nc, ClassNameAllocator allocator, com.sun.xml.xsom.XSSchemaSet schemaComponent)
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.public void setNameConverter(NameConverter nameConverter)
public final NameConverter getNameConverter()
public boolean isPackageLevelAnnotations()
public void setPackageLevelAnnotations(boolean packageLevelAnnotations)
public SymbolSpace getSymbolSpace(java.lang.String name)
public Outline generateCode(Options opt, ErrorReceiver receiver)
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.
public final java.util.Map<javax.xml.namespace.QName,CClassInfo> createTopLevelBindings()
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 appendicies 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.
public Navigator<NType,NClass,java.lang.Void,java.lang.Void> getNavigator()
TypeInfoSet
Navigator
for this model.getNavigator
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public CNonElement getTypeInfo(NType type)
TypeInfoSet
TypeInfo
for the given type.getTypeInfo
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public CBuiltinLeafInfo getAnyTypeInfo()
TypeInfoSet
TypeInfo
for the any type.getAnyTypeInfo
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public CNonElement getTypeInfo(Ref<NType,NClass> ref)
TypeInfoSet
getTypeInfo
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public java.util.Map<NClass,CClassInfo> beans()
TypeInfoSet
ClassInfo
s known to this set.beans
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public java.util.Map<NClass,CEnumLeafInfo> enums()
TypeInfoSet
EnumLeafInfo
s known to this set.enums
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public java.util.Map<javax.xml.namespace.QName,TypeUse> typeUses()
public java.util.Map<NType,? extends CArrayInfo> arrays()
arrays
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public java.util.Map<NType,? extends CBuiltinLeafInfo> builtins()
TypeInfoSet
BuiltinLeafInfo
s known to this set.builtins
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public CClassInfo getClassInfo(NClass t)
TypeInfoSet
ClassInfo
, ArrayInfo
, or LeafInfo
for the given bean.
This method is almost like refinement of TypeInfoSet.getTypeInfo(Object)
except
our C cannot derive from T.
getClassInfo
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public CElementInfo getElementInfo(NClass scope, javax.xml.namespace.QName name)
TypeInfoSet
ElementInfo
for the given element.getElementInfo
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
scope
- if null, return the info about a global element.
Otherwise return a local element in the given scope if available,
then look for a global element next.public java.util.Map<javax.xml.namespace.QName,CElementInfo> getElementMappings(NClass scope)
TypeInfoSet
ElementInfo
s in the given scope.getElementMappings
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
scope
- if non-null, this method only returns the local element mapping.public java.lang.Iterable<? extends CElementInfo> getAllElements()
TypeInfoSet
ElementInfo
known to this set.getAllElements
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public com.sun.xml.xsom.XSComponent getSchemaComponent()
schemaComponent
?CCustomizable
getSchemaComponent
in interface CCustomizable
public org.xml.sax.Locator getLocator()
CCustomizable
getLocator
in interface CCustomizable
public CCustomizations getCustomizations()
getCustomizations
in interface CCustomizable
Plugin.getCustomizationURIs()
public java.util.Map<java.lang.String,java.lang.String> getXmlNs(java.lang.String namespaceUri)
getXmlNs
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public java.util.Map<java.lang.String,java.lang.String> getSchemaLocations()
TypeInfoSet
XmlSchema.location()
found in this context.
This operation is expected to be only used in schema generator, so it can be slow.
getSchemaLocations
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public javax.xml.bind.annotation.XmlNsForm getElementFormDefault(java.lang.String nsUri)
TypeInfoSet
XmlNsForm
for the given namespace URI.
The spec doesn't define very precisely what the XmlNsForm
value
for the given namespace would be, so this method is implemented in rather
ad-hoc way. It should work as what most people expect for simple cases.
getElementFormDefault
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public javax.xml.bind.annotation.XmlNsForm getAttributeFormDefault(java.lang.String nsUri)
TypeInfoSet
XmlNsForm
for the given namespace URI.
The spec doesn't define very precisely what the XmlNsForm
value
for the given namespace would be, so this method is implemented in rather
ad-hoc way. It should work as what most people expect for simple cases.
getAttributeFormDefault
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public void dump(javax.xml.transform.Result out)
TypeInfoSet
dump
in interface TypeInfoSet<NType,NClass,java.lang.Void,java.lang.Void>
public CClassInfoParent.Package getPackage(com.sun.codemodel.JPackage pkg)