com.sun.tools.xjc.reader.xmlschema
Class BGMBuilder

java.lang.Object
  extended by com.sun.tools.xjc.reader.xmlschema.BindingComponent
      extended by com.sun.tools.xjc.reader.xmlschema.BGMBuilder

public class BGMBuilder
extends BindingComponent

Root of the XML Schema binder.


Field Summary
 String defaultPackage1
          If this is non-null, this package name takes over all the schema customizations.
 String defaultPackage2
          If this is non-null, this package name will be used when no customization is specified.
 FieldRendererFactory fieldRendererFactory
           
 boolean inExtensionMode
          True if the compiler is running in the extension mode (as opposed to the strict conformance mode.)
 Model model
           
 
Constructor Summary
protected BGMBuilder(String defaultPackage1, String defaultPackage2, boolean _inExtensionMode, FieldRendererFactory fieldRendererFactory)
           
 
Method Summary
static Model build(XSSchemaSet _schemas, com.sun.codemodel.JCodeModel codeModel, ErrorReceiver _errorReceiver, Options opts)
          Entry point.
 String deriveName(String name, XSComponent comp)
          Derives a name from a schema component.
 BindInfo getBindInfo(XSComponent schemaComponent)
          Gets the BindInfo object associated to a schema component.
 BIGlobalBinding getGlobalBinding()
          Gets the global bindings.
 Transformer getIdentityTransformer()
          Gets the shared instance of the identity transformer.
protected  BIDom getLocalDomCustomization(XSParticle p)
          Gets the BIDom object that applies to the given particle.
static QName getName(XSDeclaration decl)
          Returns the QName of the declaration.
 NameConverter getNameConverter()
          Name converter that implements "XML->Java name conversion" as specified in the spec.
 BindInfo getOrCreateBindInfo(XSComponent schemaComponent)
          Gets or creates the BindInfo object associated to a schema component.
 ParticleBinder getParticleBinder()
          Gets the particle binder for this binding.
 Set<XSComponent> getReferer(XSType c)
          Find all types that refer to the given complex type.
 void ying(XSComponent sc, XSComponent referer)
          If the component maps to a property, forwards to purple, otherwise to green.
 
Methods inherited from class com.sun.tools.xjc.reader.xmlschema.BindingComponent
getClassSelector, getErrorReporter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inExtensionMode

public final boolean inExtensionMode
True if the compiler is running in the extension mode (as opposed to the strict conformance mode.)


defaultPackage1

public final String defaultPackage1
If this is non-null, this package name takes over all the schema customizations.


defaultPackage2

public final String defaultPackage2
If this is non-null, this package name will be used when no customization is specified.


model

public final Model model

fieldRendererFactory

public final FieldRendererFactory fieldRendererFactory
Constructor Detail

BGMBuilder

protected BGMBuilder(String defaultPackage1,
                     String defaultPackage2,
                     boolean _inExtensionMode,
                     FieldRendererFactory fieldRendererFactory)
Method Detail

build

public static Model build(XSSchemaSet _schemas,
                          com.sun.codemodel.JCodeModel codeModel,
                          ErrorReceiver _errorReceiver,
                          Options opts)
Entry point.


getGlobalBinding

@NotNull
public BIGlobalBinding getGlobalBinding()
Gets the global bindings.


getParticleBinder

@NotNull
public ParticleBinder getParticleBinder()
Gets the particle binder for this binding.


getNameConverter

public NameConverter getNameConverter()
Name converter that implements "XML->Java name conversion" as specified in the spec. This object abstracts the detail that we use different name conversion depending on the customization.

This object should be used to perform any name conversion needs, instead of the JJavaName class in CodeModel.


getOrCreateBindInfo

public BindInfo getOrCreateBindInfo(XSComponent schemaComponent)
Gets or creates the BindInfo object associated to a schema component.

Returns:
Always return a non-null valid BindInfo object. Even if no declaration was specified, this method creates a new BindInfo so that new decls can be added.

getBindInfo

public BindInfo getBindInfo(XSComponent schemaComponent)
Gets the BindInfo object associated to a schema component.

Returns:
always return a valid BindInfo object. If none is specified for the given component, a dummy empty BindInfo will be returned.

getLocalDomCustomization

protected final BIDom getLocalDomCustomization(XSParticle p)
Gets the BIDom object that applies to the given particle.


ying

public void ying(XSComponent sc,
                 @Nullable
                 XSComponent referer)
If the component maps to a property, forwards to purple, otherwise to green. If the component is mapped to a type, this method needs to return true. See the chart at the class javadoc.


getIdentityTransformer

public Transformer getIdentityTransformer()
Gets the shared instance of the identity transformer.


getReferer

public Set<XSComponent> getReferer(XSType c)
Find all types that refer to the given complex type.


getName

public static QName getName(XSDeclaration decl)
Returns the QName of the declaration.

Returns:
null if the declaration is anonymous.

deriveName

public String deriveName(String name,
                         XSComponent comp)
Derives a name from a schema component. This method handles prefix/suffix modification and XML-to-Java name conversion.

Parameters:
name - The base name. This should be things like element names or type names.
comp - The component from which the base name was taken. Used to determine how names are modified.