| Modifier and Type | Class and Description |
|---|---|
| public static interface | XSDatatypeExp.Renderer
this object renders the actual datatype object. |
| public static class | XSDatatypeExp.RenderingContext
this object is used to keep the information about the dependency between late-bind datatype objects. |
| Modifier and Type | Field and Description |
|---|---|
| private XSDatatype | dt
Datatype object wrapped by this expression. |
| private final String | namespaceUri
Namespace URI of this datatype. |
| private transient State | ownerState
State object that creates this late-binding object. |
| private ExpressionPool | pool
ExpressionPool that can be used if necessary. |
| private transient XSDatatypeExp. | renderer
Once the parsing is completed, this function object should be able to render the actual datatype object. |
| Access | Constructor and Description |
|---|---|
| public | |
| public | XSDatatypeExp(String nsUri, String typeName, GrammarReader reader, XSDatatypeExp.
Creates lazily created datatype. |
| private |
| Modifier and Type | Method and Description |
|---|---|
| public XSDatatypeExp | createFinalizedType(final int finalValue, GrammarReader reader)
Derives a new type by setting final values. |
| public XSTypeIncubator | |
| public XSDatatypeExp | |
| public XSDatatype | getCreatedType()
Gets a encapsulated datatype object This method can be called only after all the datatypes are created. |
| public State | getOwnerState()
Implements com. |
| public XSDatatype | |
| public final boolean | |
| public static XSDatatypeExp | makeList(final String nsUri, final String typeName, final XSDatatypeExp itemType, GrammarReader reader)
Derives a new type by list. |
| public static XSDatatypeExp | makeUnion(final String typeNameUri, final String typeName, final Collection<E> members, GrammarReader reader)
Derives a new type by union. |
| public void | patch()
Implements com. |
| public void |
| dt | back to summary |
|---|---|
| private XSDatatype dt Datatype object wrapped by this expression.
This field can be null if the datatype object is not available
at this moment (say, because of the forward reference). In this
case, | |
| namespaceUri | back to summary |
|---|---|
| private final String namespaceUri Namespace URI of this datatype. Local name is stored in the name field of ReferenceExp. | |
| ownerState | back to summary |
|---|---|
| private transient State ownerState State object that creates this late-binding object. The source location of this state is used for error message. | |
| pool | back to summary |
|---|---|
| private ExpressionPool pool ExpressionPool that can be used if necessary. | |
| renderer | back to summary |
|---|---|
| private transient XSDatatypeExp. Once the parsing is completed, this function object should be able to render the actual datatype object. | |
| XSDatatypeExp | back to summary |
|---|---|
| public XSDatatypeExp(XSDatatype dt, ExpressionPool _pool) Creates this object from existing XSDatatype. | |
| XSDatatypeExp | back to summary |
|---|---|
| public XSDatatypeExp(String nsUri, String typeName, GrammarReader reader, XSDatatypeExp. Creates lazily created datatype. | |
| XSDatatypeExp | back to summary |
|---|---|
| private XSDatatypeExp(String nsUri, String localName) Used only for cloning | |
| createFinalizedType | back to summary |
|---|---|
| public XSDatatypeExp createFinalizedType(final int finalValue, GrammarReader reader) Derives a new type by setting final values. | |
| createIncubator | back to summary |
|---|---|
| public XSTypeIncubator createIncubator() Creates an incubator so that the caller can add more facets and derive a new type. | |
| getClone | back to summary |
|---|---|
| public XSDatatypeExp getClone() Gets a clone of this object. | |
| getCreatedType | back to summary |
|---|---|
| public XSDatatype getCreatedType() Gets a encapsulated datatype object This method can be called only after all the datatypes are created. Some of the datatypes are lazily during the back-patching phase. | |
| getOwnerState | back to summary |
|---|---|
| public State getOwnerState() Implements com. Doc from com. gets State object who has submitted this patch job. | |
| getType | back to summary |
|---|---|
| public XSDatatype getType(XSDatatypeExp. Gets the type definition. This method renders the datatype object if it's not rendered yet. Internal use only. | |
| isLateBind | back to summary |
|---|---|
| public final boolean isLateBind() | |
| makeList | back to summary |
|---|---|
| public static XSDatatypeExp makeList(final String nsUri, final String typeName, final XSDatatypeExp itemType, GrammarReader reader) throws DatatypeException Derives a new type by list. | |
| makeUnion | back to summary |
|---|---|
| public static XSDatatypeExp makeUnion(final String typeNameUri, final String typeName, final Collection<E> members, GrammarReader reader) throws DatatypeException Derives a new type by union. | |
| patch | back to summary |
|---|---|
| public void patch() Implements com. Renders the type (GrammarReader.BackPatch implementation). | |
| redefine | back to summary |
|---|---|
| public void redefine(XSDatatypeExp rhs) Updates this object by copying the state from rhs | |
| Modifier and Type | Method and Description |
|---|---|
| public XSDatatype | Returns: the XSDatatype object which this LateBindDatatype object is representing. It shall not return an instance of LateBindDatatype object.If this renderer calls the getBody method of the other
LateBindDatatype objects, then this context should be passed
to the getBody method. This context object is responsible for
detecting recursive references. contextcreates (or retrieves, whatever) the actual, concrete, real XSDatatype object. |
| render | back to summary |
|---|---|
| public XSDatatype render(XSDatatypeExp. creates (or retrieves, whatever) the actual, concrete, real XSDatatype object. This method is typically called from the wrapUp method of the GrammarReader.
| |
Consider the following schema:
<xs:simpleType name="foo">
<xs:restriction base="bar">
<xs:minLength value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="bar">
<xs:restriction base="foo">
<xs:minLength value="3"/>
</xs:restriction>
</xs:simpleType>
Since two types are depending on each other, if you call the
getBody method of "foo" type, it will call the getBody method of "bar" type.
Then in turn it will call "foo" again. So this will result in the
infinite recursion.
This context object is used to detect such condition and reports the dependency to the user.
No method is publicly accessible.
| Access | Constructor and Description |
|---|---|
| pack-priv |
| callStack | back to summary |
|---|---|
| private final Stack<E> callStack | |
| RenderingContext | back to summary |
|---|---|
| pack-priv RenderingContext() | |