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, prohibitedAtts
ownerDocument
EXTENSION, 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, iterateDeclaredAttributeUses
getName, getTargetNamespace, isAnonymous, isGlobal, isLocal
getAnnotation, getAnnotation, getForeignAttribute, getForeignAttributes, getLocator, getOwnerSchema, getRoot, getSourceDocument, select, selectSingle, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAttGroups, getDeclaredAttributeUse, getDeclaredAttributeUses, iterateAttGroups, iterateDeclaredAttributeUses
getName, getTargetNamespace, isAnonymous, isGlobal, isLocal
getAnnotation, getAnnotation, getForeignAttribute, getForeignAttributes, getLocator, getOwnerSchema, getRoot, getSourceDocument, select, selectSingle
private 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()
XSType
asComplexType
in interface XSType
public boolean isDerivedFrom(XSType t)
XSType
Note that t.isDerivedFrom(t) returns true.
isDerivedFrom
in interface XSType
public XSSimpleType asSimpleType()
XSType
asSimpleType
in interface XSType
public final boolean isSimpleType()
XSType
this instanceof XSSimpleType
.isSimpleType
in interface XSType
public final boolean isComplexType()
XSType
this instanceof XSComplexType
.isComplexType
in interface XSType
public int getDerivationMethod()
getDerivationMethod
in interface XSType
public XSType getBaseType()
XSType
getBaseType
in interface XSType
public void redefine(ComplexTypeImpl ct)
public XSComplexType getRedefinedBy()
XSComplexType
XSComplexType
is redefined by another complex type,
return that component.getRedefinedBy
in interface XSComplexType
getRedefinedBy
in interface XSType
public int getRedefinedCount()
XSType
For 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 XSType
public XSElementDecl getScope()
XSComplexType
getScope
in interface XSComplexType
public void setScope(XSElementDecl _scope)
public boolean isAbstract()
XSComplexType
isAbstract
in interface XSComplexType
public void setWildcard(WildcardImpl wc)
setWildcard
in class AttributesHolder
public XSWildcard getAttributeWildcard()
getAttributeWildcard
in interface XSAttContainer
public boolean isFinal(int derivationMethod)
isFinal
in interface XSComplexType
public boolean isSubstitutionProhibited(int method)
XSComplexType
isSubstitutionProhibited
in interface XSComplexType
public void setContentType(Ref.ContentType v)
public XSContentType getContentType()
XSComplexType
getContentType
in interface XSComplexType
public void setExplicitContent(XSContentType v)
public XSContentType getExplicitContent()
XSComplexType
Informally, 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 XSComplexType
public boolean isMixed()
isMixed
in interface XSComplexType
public XSAttributeUse getAttributeUse(java.lang.String nsURI, java.lang.String localName)
XSAttContainer
This is the exact implementation of the "attribute use" schema component.
getAttributeUse
in interface XSAttContainer
public java.util.Iterator<XSAttributeUse> iterateAttributeUses()
XSAttContainer
This is the exact implementation of the "attribute use" schema component.
iterateAttributeUses
in interface XSAttContainer
iterateAttributeUses
in class AttributesHolder
public java.util.Collection<XSAttributeUse> getAttributeUses()
AttributesHolder
ComplexTypeImpl
.getAttributeUses
in interface XSAttContainer
getAttributeUses
in class AttributesHolder
public XSType[] listSubstitutables()
XSType
This method honors the block flag.
listSubstitutables
in interface XSType
public void visit(XSVisitor visitor)
XSComponent
visit
in interface XSComponent
public <T> T apply(XSFunction<T> function)
XSComponent
apply
in interface XSComponent
public XSComplexType getType()
Ref.Type
getType
in interface Ref.ComplexType
getType
in interface Ref.Type
public java.util.List<XSComplexType> getSubtypes()
XSComplexType
getSubtypes
in interface XSComplexType
public java.util.List<XSElementDecl> getElementDecls()
XSComplexType
getElementDecls
in interface XSComplexType