public class ComplexTypeImpl extends AttributesHolder implements XSComplexType, Ref.ComplexType
attGroups, attributes, prohibitedAtts
ownerDocument
EXTENSION, RESTRICTION, SUBSTITUTION
Constructor and Description |
---|
ComplexTypeImpl(SchemaDocumentImpl _parent,
AnnotationImpl _annon,
Locator _loc,
ForeignAttributesImpl _fa,
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(String nsURI,
String localName)
Looks for the attribute use with the specified name from
all the attribute uses that are directly/indirectly
referenced from this component.
|
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() |
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.
|
String |
getName()
Gets the (local) name of the declaration.
|
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.
|
List<XSComplexType> |
getSubtypes()
Returns a list of direct subtypes of this complex type.
|
String |
getTargetNamespace()
Target namespace to which this component belongs.
|
XSComplexType |
getType()
Obtains a reference as a type.
|
boolean |
isAbstract()
Checks if this complex type is declared as an abstract type.
|
boolean |
isAnonymous()
Deprecated.
|
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 |
isGlobal()
Returns true if this declaration is a global declaration.
|
boolean |
isLocal()
Returns true if this declaration is a local declaration.
|
boolean |
isMixed() |
boolean |
isSimpleType()
Returns true if
this instanceof XSSimpleType . |
boolean |
isSubstitutionProhibited(int method)
Roughly corresponds to the block attribute.
|
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
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
public ComplexTypeImpl(SchemaDocumentImpl _parent, AnnotationImpl _annon, Locator _loc, ForeignAttributesImpl _fa, 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
xs:anyType
, this method returns itself.
This is awkward as an API, but it follows the schema specification.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(String nsURI, String localName)
XSAttContainer
This is the exact implementation of the "attribute use" schema component.
getAttributeUse
in interface XSAttContainer
public Iterator<XSAttributeUse> iterateAttributeUses()
XSAttContainer
This is the exact implementation of the "attribute use" schema component.
iterateAttributeUses
in interface XSAttContainer
iterateAttributeUses
in class AttributesHolder
public 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 List<XSComplexType> getSubtypes()
XSComplexType
getSubtypes
in interface XSComplexType
public List<XSElementDecl> getElementDecls()
XSComplexType
getElementDecls
in interface XSComplexType
public String getName()
XSDeclaration
getName
in interface XSDeclaration
public String getTargetNamespace()
XSDeclaration
""
is used to represent the default no namespace.getTargetNamespace
in interface XSDeclaration
public boolean isAnonymous()
isAnonymous
in interface XSDeclaration
public final boolean isGlobal()
XSDeclaration
isGlobal
in interface XSDeclaration
public final boolean isLocal()
XSDeclaration
!isGlobal()
isLocal
in interface XSDeclaration
Copyright © 2021 JBoss by Red Hat. All rights reserved.