org.apache.axis.wsdl.symbolTable
Class TypeEntry
- Serializable
public abstract class TypeEntry
implements Serializable
This class represents a wsdl types entry that is supported by the WSDL2Java emitter.
A TypeEntry has a QName representing its XML name and a name, which in the
WSDL2Java back end is its full java name. The TypeEntry may also have a Node,
which locates the definition of the emit type in the xml.
A TypeEntry object extends SymTabEntry and is built by the SymbolTable class for
each supported root complexType, simpleType, and elements that are
defined or encountered.
SymTabEntry
|
TypeEntry
/ \
Type Element
| |
(BaseType, (DefinedElement,
CollectionType CollectionElement,
DefinedType, UndefinedElement)
UndefinedType)
UndefinedType and UndefinedElement are placeholders when the real type or element
is not encountered yet. Both of these implement the Undefined interface.
A TypeEntry whose java (or other language) name depends on an Undefined type, will
have its name initialization deferred until the Undefined type is replaced with
a defined type. The updateUndefined() method is invoked by the UndefinedDelegate to
update the information.
Each TypeEntry whose language name depends on another TypeEntry will have the refType
field set. For example:
The TypeEntry for "foo" will have a refType set to the TypeEntry of "bar".
Another Example:
The TypeEntry for "hobbyArray" will have a refType that locates the TypeEntry for xsd:string
and the dims field will be "[]"
- Rich Scheuerle (scheu@us.ibm.com)
TypeEntry(QName pqName) - Create a TypeEntry object for an xml construct name that represents a base type
|
TypeEntry(QName pqName, Node pNode) - Create a TypeEntry object for an xml construct that is not a base type
|
TypeEntry(QName pqName, TypeEntry refType, Node pNode, String dims) - Create a TypeEntry object for an xml construct that references another type.
|
componentType
protected QName componentType
containedAttributes
protected Vector containedAttributes
contained attributes in the schema's type definition
containedElements
protected Vector containedElements
contained elements in the schema's type definition
dims
protected String dims
Field dims
isBaseType
protected boolean isBaseType
Field isBaseType
isSimpleType
protected boolean isSimpleType
Field isSimpleType
itemQName
protected QName itemQName
If this TypeEntry represents an array with elements inside a "wrapper"
this field can optionally change the inner QName (default is - ).
node
protected Node node
Field node
onlyLiteralReference
protected boolean onlyLiteralReference
Field onlyLiteralReference
refType
protected TypeEntry refType
Field refType
types
protected HashSet types
Field types
undefined
protected boolean undefined
Field undefined
underlTypeNillable
protected boolean underlTypeNillable
TypeEntry
protected TypeEntry(QName pqName)
Create a TypeEntry object for an xml construct name that represents a base type
TypeEntry
protected TypeEntry(QName pqName,
Node pNode)
Create a TypeEntry object for an xml construct that is not a base type
TypeEntry
protected TypeEntry(QName pqName,
TypeEntry refType,
Node pNode,
String dims)
Create a TypeEntry object for an xml construct that references another type.
Defer processing until refType is known.
pqName
- refType
- pNode
- dims
-
getBaseType
public String getBaseType()
Returns the Base Type Name.
For example if the Type represents a schema integer, "int" is returned.
If this is a user defined type, null is returned.
getComponentType
public QName getComponentType()
Return the QName of the component if this is an array type
- QName of array elements or null
getContainedAttributes
public Vector getContainedAttributes()
- Returns the containedAttributes.
getContainedElements
public Vector getContainedElements()
- Returns the containedElements.
getDimensions
public String getDimensions()
Return the dimensions of this type, which can be 0 or more "[]".
getItemQName
public QName getItemQName()
getNestedTypes
public HashSet getNestedTypes(SymbolTable symbolTable,
boolean derivedFlag)
This method returns a set of all the nested types.
Nested types are types declared within this TypeEntry (or descendents)
plus any extended types and the extended type nested types
The elements of the returned HashSet are Types.
symbolTable
- is the symbolTablederivedFlag
- should be set if all dependendent derived types should also be
returned.
getNode
public Node getNode()
Query the node for this type.
getRefType
public TypeEntry getRefType()
If this type references another type, return that type, otherwise return null.
getUndefinedTypeRef
protected TypeEntry getUndefinedTypeRef()
getUndefinedTypeRef returns the Undefined TypeEntry that this entry depends on or NULL.
getUnderlTypeNillable
public boolean getUnderlTypeNillable()
Return whether the underlying type is nillable if this is an array type.
- true if it is an array and nillable
isBaseType
public boolean isBaseType()
Method isBaseType
isOnlyLiteralReferenced
public boolean isOnlyLiteralReferenced()
Is this type references ONLY as a literal type? If a binding's
message's soapBody says: use="literal", then a type is referenced
literally. Note that that type's contained types (ie., an address
contains a phone#) are not referenced literally. Since a type
that is ONLY referenced as a literal may cause a generator to act
differently (like WSDL2Java), this extra reference distinction is
needed.
isSimpleType
public boolean isSimpleType()
Method isSimpleType
setBaseType
public void setBaseType(boolean baseType)
Method setBaseType
setComponentType
public void setComponentType(QName componentType)
Set the QName of the component if this is an array type
setContainedAttributes
public void setContainedAttributes(Vector containedAttributes)
containedAttributes
- The containedAttributes to set.
setContainedElements
public void setContainedElements(Vector containedElements)
containedElements
- The containedElements to set.
setItemQName
public void setItemQName(QName itemQName)
setOnlyLiteralReference
public void setOnlyLiteralReference(boolean set)
Set the isOnlyLiteralReference flag.
setRefType
public void setRefType(TypeEntry refType)
Method setRefType
setSimpleType
public void setSimpleType(boolean simpleType)
Method setSimpleType
setUnderlTypeNillable
public void setUnderlTypeNillable(boolean underlTypeNillable)
Set the boolean indicating whether underlying type of array is nillable.
toString
protected String toString(String indent)
Get string representation with indentation
- toString in interface SymTabEntry
updateUndefined
protected boolean updateUndefined(TypeEntry oldRef,
TypeEntry newRef)
throws IOException
UpdateUndefined is called when the ref TypeEntry is finally known.
oldRef
- The TypeEntry representing the Undefined TypeEntrynewRef
- The replacement TypeEntry
- true if TypeEntry is changed in any way.
Copyright © 2005 Apache Web Services Project. All Rights Reserved.