org.exolab.castor.builder.binding

Class XMLBindingComponent

public class XMLBindingComponent extends Object implements BindingComponent

This class is the implementation of BindingComponent from an XML Schema point of view. This specific implementation wraps an XML Schema annotated structure.

The XML Schema structure can be only of four different types:

The three first items can be customized using a binding file. Thus the XMLBindingComponent class takes into account the presence or not of a custom binding document in the computation of the needed information for the Source Generator to generate java classes from an XML Schema.

The customizable items are detailled in the binding file documentation.

This class acts like a window on a particular XML Schema structure that the user controls by changing the view on the Annotated Structure he is interested in.

TODO: add the link to the documentation.

Version: $Revision: 6343 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $

Author: Arnaud Blandin Keith Visco

See Also:

Constructor Summary
XMLBindingComponent(BuilderConfiguration config, GroupNaming groupNaming)
Constructs an XMLBindingComponent from an XML Schema Component.
Method Summary
booleancreateGroupItem()
Returns true if the binding of this XMLBindingComponent will require the generation of 2 java classes.
booleanequals(Object object)
Returns true if the given Object is equal to this instance of XMLBindingComponent.
AnnotatedgetAnnotated()
Returns the XML Schema annotated structure used in this XMLBindingComponent.
ExtendedBindinggetBinding()
Returns the Binding Object Model on which this XMLBindingComponent will query information.
StringgetCollectionType()
Returns the collection name specified in the binding file.
protected ComponentBindingTypegetComponentBinding()
Returns the ComponentBinding used in that XMLBindingComponent to retrieve customized information.
StringgetExtends()
Returns the name of a super class for the current XMLBinding.
String[]getImplements()
Returns an array of the different interface names implemented by the class that will represent the current XMLBindingComponent.
StringgetJavaClassName()
Returns a valid Java Class Name corresponding to this XMLBindingComponent.
StringgetJavaMemberName()
Returns a valid Java Member Name corresponding to this XMLBindingComponent.
StringgetJavaPackage()
Returns the java package associated with this XML BindingComponent.
XSTypegetJavaType()
Returns the XSType that corresponds to the Java type chosen to represent the XML Schema component represented by this XMLBindingComponent.
intgetLowerBound()
Returns the lower bound of the collection that is generated from this BindingComponent.
StringgetQualifiedName()
Returns the fully qualified name used for generating a java name that represents this XMLBindingComponent.
SchemagetSchema()
Returns the underlying Schema of the wrapped structure.
StringgetSchemaLocation()
Returns the schemaLocation of the parent schema of the wrapped structure.
StringgetTargetNamespace()
Returns the targetNamespace of the parent schema of the wrapped structure.
shortgetType()
Returns the type of this component binding.
intgetUpperBound()
Returns the upper bound of the collection that is generated from this BindingComponent.
StringgetValidator()
Returns the fully qualified name of the Validator to use.
StringgetValue()
Returns the value specified in the XML Schema for the XML Schema component wrapped in this XMLBindingComponent.
StringgetXMLFieldHandler()
Returns the fully qualified name of the XMLFieldHandler to use.
StringgetXMLName()
Returns the XML name declared in the XML Schema for this XMLBindingComponent.
XMLTypegetXMLType()
Returns the XMLType of the underlying structure.
booleanhasBoundProperties()
Returns true if bound properties must be generated for the class that will represent the current XMLBindingComponent.
booleanhasEquals()
Returns true if equal method must be generated for the class that will represent the current XMLBindingComponent.
inthashCode()
Returns the hashCode value for this object.
booleanisAbstract()
Returns true if the class that will represent the current XMLBindingComponent must be abstract.
booleanisFinal()
Returns true if the class that will represent the current XMLBindingComponent must be final.
booleanisFixed()
Returns true if the wrapped XML Schema component is fixed (i.e the value used is fixed).
booleanisNillable()
Returns true if the wrapped XML Schema component is nillable.
voidsetBinding(ExtendedBinding binding)
Sets the Binding Object Model on which this XMLBindingComponent will query information.
voidsetView(Annotated annotated)
Sets the window on the given Annotated XML Schema structure.
booleanuseWrapper()
Returns true if the member represented by that XMLBindingComponent is to be represented by an Object wrapper.

Constructor Detail

XMLBindingComponent

public XMLBindingComponent(BuilderConfiguration config, GroupNaming groupNaming)
Constructs an XMLBindingComponent from an XML Schema Component.

Parameters: config the BuilderConfiguration instance (must not be null). groupNaming The group naming scheme to be used.

Method Detail

createGroupItem

public boolean createGroupItem()
Returns true if the binding of this XMLBindingComponent will require the generation of 2 java classes. Indeed an a nested Model Group that can occur more than once is described by the SourceGenerator with a wrapper class.

Returns: true if the binding of this XMLBindingComponent will require the generation of 2 java classes.

equals

public boolean equals(Object object)
Returns true if the given Object is equal to this instance of XMLBindingComponent.

Parameters: object {@inheritDoc }

Returns: true if the given Object is equal to this instance of XMLBindingComponent.

See Also: java.lang.Object#equals(java.lang.Object)

getAnnotated

public Annotated getAnnotated()
Returns the XML Schema annotated structure used in this XMLBindingComponent.

Returns: the XML Schema annotated structure used in this XMLBindingComponent.

getBinding

public ExtendedBinding getBinding()
Returns the Binding Object Model on which this XMLBindingComponent will query information.

Returns: the Extended Binding Object Model that wraps the information located in a binding file

getCollectionType

public String getCollectionType()
Returns the collection name specified in the binding file. If no collection was specified, null will be returned and the default collection settings will be used.

Returns: a string that represents the collection name specified in the binding file. If no collection was specified, null will be returned and the default collection settings will be used.

getComponentBinding

protected ComponentBindingType getComponentBinding()
Returns the ComponentBinding used in that XMLBindingComponent to retrieve customized information.

Returns: the ComponentBinding used in that XMLBinding.

getExtends

public String getExtends()
Returns the name of a super class for the current XMLBinding. Null is returned if this XMLBinding is not meant to be mapped to a java class.

Returns: the name of a super class for the current XMLBinding. Null is returned if this XMLBinding is not meant to be mapped to a java class

getImplements

public String[] getImplements()
Returns an array of the different interface names implemented by the class that will represent the current XMLBindingComponent. Null is returned if no class binding is defined for the wrapped XML Schema structure.

Returns: array of interface names

getJavaClassName

public String getJavaClassName()
Returns a valid Java Class Name corresponding to this XMLBindingComponent. This name is not qualified, this is only a local Java class name.

Returns: a valid Java Class Name corresponding to this XMLBindingComponent. This name is not qualified, this is only a local Java class name.

See Also: XMLBindingComponent

getJavaMemberName

public String getJavaMemberName()
Returns a valid Java Member Name corresponding to this XMLBindingComponent. This name is not qualified, this is only a local Java Member name.

Returns: a valid Java Member Name corresponding to this XMLBindingComponent. This name is not qualified, this is only a local Java member name.

See Also: XMLBindingComponent

getJavaPackage

public String getJavaPackage()
Returns the java package associated with this XML BindingComponent. The algorithm used to resolve the package is defined according to the following priorities:
  1. The package defined locally in the class declaration inside the binding file is used.
  2. If no package has been defined locally then a lookup to a defined mapping {targetNamespace, package name} is performed.
  3. If no package has been defined locally then a lookup to a defined mapping {schema location, package name} is performed.

Returns: the java package associated with this XML BindingComponent.

getJavaType

public XSType getJavaType()
Returns the XSType that corresponds to the Java type chosen to represent the XML Schema component represented by this XMLBindingComponent. An XSType is an abstraction of a Java type used in the Source Generator. It wraps a JType as well as the necessary methods to convert to/from String.

If a name of java type is specified then this name will have higher priority than the simpleType resolution.

Returns: an XSType

getLowerBound

public int getLowerBound()
Returns the lower bound of the collection that is generated from this BindingComponent. The lower bound is a positive integer. In the case of an XML Schema component, it corresponds to the XML Schema minOccurs attribute, if any.

Returns: an int representing the lower bound of the collection generated from this BindingComponent. 0 is returned by default.

getQualifiedName

public String getQualifiedName()
Returns the fully qualified name used for generating a java name that represents this XMLBindingComponent.

The fully qualified name is computed according the following priority order:

Note: the computation of the namespace is a direct look-up for a defined mapping (Namespace, package) or (schema location, package).

Returns: the fully qualified name used for generating a java name that represents this XMLBindingComponent.

getSchema

public Schema getSchema()
Returns the underlying Schema of the wrapped structure.

Returns: the parent schema of the wrapped structure.

getSchemaLocation

public String getSchemaLocation()
Returns the schemaLocation of the parent schema of the wrapped structure.

Returns: the schemaLocation of the parent schema of the wrapped structure.

getTargetNamespace

public String getTargetNamespace()
Returns the targetNamespace of the parent schema of the wrapped structure.

Returns: the targetNamespace of the parent schema of the wrapped structure.

getType

public short getType()
Returns the type of this component binding. A component binding can be of three different types:

-1 is returned if the component binding is null.

Returns: the type of this component binding.

getUpperBound

public int getUpperBound()
Returns the upper bound of the collection that is generated from this BindingComponent. The upper bound is a positive integer. -1 is returned to indicate that the upper bound is unbounded.

In the case of an XML Schema component, the upper bound corresponds to the XML Schema maxOccurs attribute, if any.

Returns: an int representing the lower bound of the collection generated from this BindingComponent. -1 is returned to indicate that the upper bound is unbounded. 1 is the default value.

getValidator

public String getValidator()
Returns the fully qualified name of the Validator to use.

Returns: the fully qualified name of the Validator to use.

getValue

public String getValue()
Returns the value specified in the XML Schema for the XML Schema component wrapped in this XMLBindingComponent. The value returned is the default or fixed value for an Element or an Attribute.

Returns: the value specified in the XML Schema for the XML Schema annotated structure wrapped in this XMLBindingComponent.

getXMLFieldHandler

public String getXMLFieldHandler()
Returns the fully qualified name of the XMLFieldHandler to use.

Returns: the fully qualified name of the XMLFieldHandler to use.

getXMLName

public String getXMLName()
Returns the XML name declared in the XML Schema for this XMLBindingComponent.

Returns: the XML name declared in the XML Schema for this XMLBindingComponent.

getXMLType

public XMLType getXMLType()
Returns the XMLType of the underlying structure. The XMLType of an element being its XML Schema type, the XMLType of a ComplexType being itself and the XMLType of an attribute being its XML Schema simpleType. Null is returned for a Model Group.

Returns: the XMLType of the underlying structure.

hasBoundProperties

public boolean hasBoundProperties()
Returns true if bound properties must be generated for the class that will represent the current XMLBindingComponent.

Returns: true if bound properties must be generated for the class the class that will represent the current XMLBindingComponent.

hasEquals

public boolean hasEquals()
Returns true if equal method must be generated for the class that will represent the current XMLBindingComponent.

Returns: true if equal method must be generated for the class the class that will represent the current XMLBindingComponent.

hashCode

public int hashCode()
Returns the hashCode value for this object.

Returns: the hashcode value for this object.

See Also: java.lang.Object#hashCode()

isAbstract

public boolean isAbstract()
Returns true if the class that will represent the current XMLBindingComponent must be abstract.

Returns: true if the class that will represent the current XMLBindingComponent must be abstract.

isFinal

public boolean isFinal()
Returns true if the class that will represent the current XMLBindingComponent must be final.

Returns: true if the class that will represent the current XMLBindingComponent must be final.

isFixed

public boolean isFixed()
Returns true if the wrapped XML Schema component is fixed (i.e the value used is fixed).

Returns: true if the wrapped XML Schema component is fixed (i.e the value used is fixed).

isNillable

public boolean isNillable()
Returns true if the wrapped XML Schema component is nillable.

Returns: true if the wrapped XML Schema component is nillable.

setBinding

public void setBinding(ExtendedBinding binding)
Sets the Binding Object Model on which this XMLBindingComponent will query information.

Parameters: binding the Extended Binding Object Model that wraps the information located in a binding file

setView

public void setView(Annotated annotated)
Sets the window on the given Annotated XML Schema structure. Once the window is set on a particular XML Schema structure all the information returned by this class are relative to that XML Schema structure.

Parameters: annotated an Annotated XML Schema structure.

See Also: Annotated

useWrapper

public boolean useWrapper()
Returns true if the member represented by that XMLBindingComponent is to be represented by an Object wrapper. For instance an int will be represented by a java Integer if the property is set to true.

Returns: true if the member represented by that XMLBindingComponent is to be represented by an Object wrapper.

Intalio Inc. (C) 1999-2006. All rights reserved http://www.intalio.com