public class ComplexTypeImpl extends AttributesHolder implements XSComplexType, Ref.ComplexType
| Modifier and Type | Field and Description |
|---|---|
private boolean |
_abstract |
private Ref.Type |
baseType |
private int |
blockValue |
private Ref.ContentType |
contentType |
private int |
derivationMethod |
private XSContentType |
explicitContent |
private int |
finalValue |
private WildcardImpl |
localAttWildcard |
private boolean |
mixed |
private ComplexTypeImpl |
redefinedBy |
private short |
redefiningCount
Number of times this component redefines other components.
|
private XSElementDecl |
scope |
attGroups, attributes, prohibitedAttsownerDocumentEXTENSION, RESTRICTION, SUBSTITUTION| Constructor and Description |
|---|
ComplexTypeImpl(SchemaDocumentImpl _parent,
AnnotationImpl _annon,
org.xml.sax.Locator _loc,
ForeignAttributesImpl _fa,
java.lang.String _name,
boolean _anonymous,
boolean _abstract,
int _derivationMethod,
Ref.Type _base,
int _final,
int _block,
boolean _mixed) |
| Modifier and Type | Method and Description |
|---|---|
<T> T |
apply(XSFunction<T> function)
Accepts a functor.
|
XSComplexType |
asComplexType()
Casts this object to XSComplexType if possible, otherwise returns null.
|
XSSimpleType |
asSimpleType()
Casts this object to XSSimpleType if possible, otherwise returns null.
|
XSAttributeUse |
getAttributeUse(java.lang.String nsURI,
java.lang.String localName)
Looks for the attribute use with the specified name from
all the attribute uses that are directly/indirectly
referenced from this component.
|
java.util.Collection<XSAttributeUse> |
getAttributeUses()
Returns the attribute uses by looking at attribute groups and etc.
|
XSWildcard |
getAttributeWildcard() |
XSType |
getBaseType()
Returns the base type of this type.
|
XSContentType |
getContentType()
The content of this complex type.
|
int |
getDerivationMethod() |
java.util.List<XSElementDecl> |
getElementDecls()
Returns a list of element declarations of this type.
|
XSContentType |
getExplicitContent()
Gets the explicit content of a complex type with a complex content
that was derived by extension.
|
XSComplexType |
getRedefinedBy()
If this
XSComplexType is redefined by another complex type,
return that component. |
int |
getRedefinedCount()
Returns the number of complex types that redefine this component.
|
XSElementDecl |
getScope()
Gets the scope of this complex type.
|
java.util.List<XSComplexType> |
getSubtypes()
Returns a list of direct subtypes of this complex type.
|
XSComplexType |
getType()
Obtains a reference as a type.
|
boolean |
isAbstract()
Checks if this complex type is declared as an abstract type.
|
boolean |
isComplexType()
Returns true if
this instanceof XSComplexType. |
boolean |
isDerivedFrom(XSType t)
Returns true if this type is derived from the specified type.
|
boolean |
isFinal(int derivationMethod) |
boolean |
isMixed() |
boolean |
isSimpleType()
Returns true if
this instanceof XSSimpleType. |
boolean |
isSubstitutionProhibited(int method)
Roughly corresponds to the block attribute.
|
java.util.Iterator<XSAttributeUse> |
iterateAttributeUses()
Lists all the attribute uses that are directly/indirectly
referenced from this component.
|
XSType[] |
listSubstitutables()
Lists up types that can substitute this type by using xsi:type.
|
void |
redefine(ComplexTypeImpl ct)
Called when this complex type redefines the specified complex type.
|
void |
setContentType(Ref.ContentType v) |
void |
setExplicitContent(XSContentType v) |
void |
setScope(XSElementDecl _scope) |
void |
setWildcard(WildcardImpl wc)
Set the local attribute wildcard.
|
void |
visit(XSVisitor visitor)
Accepts a visitor.
|
addAttGroup, addAttributeUse, addProhibitedAttribute, getAttGroups, getDeclaredAttributeUse, getDeclaredAttributeUses, iterateAttGroups, iterateDeclaredAttributeUsesgetName, getTargetNamespace, isAnonymous, isGlobal, isLocalgetAnnotation, getAnnotation, getForeignAttribute, getForeignAttributes, getLocator, getOwnerSchema, getRoot, getSourceDocument, select, selectSingle, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetAttGroups, getDeclaredAttributeUse, getDeclaredAttributeUses, iterateAttGroups, iterateDeclaredAttributeUsesgetName, getTargetNamespace, isAnonymous, isGlobal, isLocalgetAnnotation, getAnnotation, getForeignAttribute, getForeignAttributes, getLocator, getOwnerSchema, getRoot, getSourceDocument, select, selectSingleprivate int derivationMethod
private Ref.Type baseType
private short redefiningCount
private ComplexTypeImpl redefinedBy
private XSElementDecl scope
private final boolean _abstract
private WildcardImpl localAttWildcard
private final int finalValue
private final int blockValue
private Ref.ContentType contentType
private XSContentType explicitContent
private final boolean mixed
public ComplexTypeImpl(SchemaDocumentImpl _parent, AnnotationImpl _annon, org.xml.sax.Locator _loc, ForeignAttributesImpl _fa, java.lang.String _name, boolean _anonymous, boolean _abstract, int _derivationMethod, Ref.Type _base, int _final, int _block, boolean _mixed)
public XSComplexType asComplexType()
XSTypeasComplexType in interface XSTypepublic boolean isDerivedFrom(XSType t)
XSTypeNote that t.isDerivedFrom(t) returns true.
isDerivedFrom in interface XSTypepublic XSSimpleType asSimpleType()
XSTypeasSimpleType in interface XSTypepublic final boolean isSimpleType()
XSTypethis instanceof XSSimpleType.isSimpleType in interface XSTypepublic final boolean isComplexType()
XSTypethis instanceof XSComplexType.isComplexType in interface XSTypepublic int getDerivationMethod()
getDerivationMethod in interface XSTypepublic XSType getBaseType()
XSTypegetBaseType in interface XSTypepublic void redefine(ComplexTypeImpl ct)
public XSComplexType getRedefinedBy()
XSComplexTypeXSComplexType is redefined by another complex type,
return that component.getRedefinedBy in interface XSComplexTypegetRedefinedBy in interface XSTypepublic int getRedefinedCount()
XSTypeFor example, if A is redefined by B and B is redefined by C, A.getRedefinedCount()==2, B.getRedefinedCount()==1, and C.getRedefinedCount()==0.
getRedefinedCount in interface XSTypepublic XSElementDecl getScope()
XSComplexTypegetScope in interface XSComplexTypepublic void setScope(XSElementDecl _scope)
public boolean isAbstract()
XSComplexTypeisAbstract in interface XSComplexTypepublic void setWildcard(WildcardImpl wc)
setWildcard in class AttributesHolderpublic XSWildcard getAttributeWildcard()
getAttributeWildcard in interface XSAttContainerpublic boolean isFinal(int derivationMethod)
isFinal in interface XSComplexTypepublic boolean isSubstitutionProhibited(int method)
XSComplexTypeisSubstitutionProhibited in interface XSComplexTypepublic void setContentType(Ref.ContentType v)
public XSContentType getContentType()
XSComplexTypegetContentType in interface XSComplexTypepublic void setExplicitContent(XSContentType v)
public XSContentType getExplicitContent()
XSComplexTypeInformally, the "explicit content" is the portion of the content model added in this derivation. IOW, it's a delta between the base complex type and this complex type.
For example, when a complex type T2 derives fom T1, then:
content type of T2 = SEQUENCE( content type of T1, explicit content of T2 )
getExplicitContent in interface XSComplexTypepublic boolean isMixed()
isMixed in interface XSComplexTypepublic XSAttributeUse getAttributeUse(java.lang.String nsURI, java.lang.String localName)
XSAttContainerThis is the exact implementation of the "attribute use" schema component.
getAttributeUse in interface XSAttContainerpublic java.util.Iterator<XSAttributeUse> iterateAttributeUses()
XSAttContainerThis is the exact implementation of the "attribute use" schema component.
iterateAttributeUses in interface XSAttContaineriterateAttributeUses in class AttributesHolderpublic java.util.Collection<XSAttributeUse> getAttributeUses()
AttributesHolderComplexTypeImpl.getAttributeUses in interface XSAttContainergetAttributeUses in class AttributesHolderpublic XSType[] listSubstitutables()
XSTypeThis method honors the block flag.
listSubstitutables in interface XSTypepublic void visit(XSVisitor visitor)
XSComponentvisit in interface XSComponentpublic <T> T apply(XSFunction<T> function)
XSComponentapply in interface XSComponentpublic XSComplexType getType()
Ref.TypegetType in interface Ref.ComplexTypegetType in interface Ref.Typepublic java.util.List<XSComplexType> getSubtypes()
XSComplexTypegetSubtypes in interface XSComplexTypepublic java.util.List<XSElementDecl> getElementDecls()
XSComplexTypegetElementDecls in interface XSComplexType