com.sun.msv.reader.datatype.xsd

Class XSDatatypeExp

Implemented Interfaces:
GrammarReader.BackPatch, Serializable

public class XSDatatypeExp
extends ReferenceExp
implements GrammarReader.BackPatch

A wrapper of XSDatatype that serves as an expression and encapsulates lazy-constructed datatypes.
Author:
Kohsuke KAWAGUCHI
See Also:
Serialized Form

Nested Class Summary

static interface
XSDatatypeExp.Renderer
this object renders the actual datatype object.
static class
XSDatatypeExp.RenderingContext
this object is used to keep the information about the dependency between late-bind datatype objects.

Field Summary

Fields inherited from class com.sun.msv.grammar.ReferenceExp

exp, name

Fields inherited from class com.sun.msv.grammar.Expression

anyString, epsilon, nullSet, verifierTag

Constructor Summary

XSDatatypeExp(String nsUri, String typeName, GrammarReader reader, XSDatatypeExp.Renderer _renderer)
Creates lazily created datatype.
XSDatatypeExp(XSDatatype dt, ExpressionPool _pool)
Creates this object from existing XSDatatype.

Method Summary

XSDatatypeExp
createFinalizedType(int finalValue, GrammarReader reader)
Derives a new type by setting final values.
XSTypeIncubator
createIncubator()
Creates an incubator so that the caller can add more facets and derive a new type.
XSDatatypeExp
getClone()
Gets a clone of this object.
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.

State
getOwnerState()
XSDatatype
getType(XSDatatypeExp.RenderingContext context)
Gets the type definition.
boolean
isLateBind()
static XSDatatypeExp
makeList(String nsUri, String typeName, XSDatatypeExp itemType, GrammarReader reader)
Derives a new type by list.
static XSDatatypeExp
makeUnion(String typeNameUri, String typeName, Collection members, GrammarReader reader)
Derives a new type by union.
void
patch()
Renders the type (GrammarReader.BackPatch implementation).
void
redefine(XSDatatypeExp rhs)
Updates this object by copying the state from rhs

Methods inherited from class com.sun.msv.grammar.ReferenceExp

equals, isDefined, visit, visit, visit, visit

Methods inherited from class com.sun.msv.grammar.Expression

equals, getExpandedExp, hashCode, isEpsilonReducible, peelOccurence, visit, visit, visit, visit, visit, visit, visit, visit

Constructor Details

XSDatatypeExp

public XSDatatypeExp(String nsUri,
                     String typeName,
                     GrammarReader reader,
                     XSDatatypeExp.Renderer _renderer)
Creates lazily created datatype.

XSDatatypeExp

public XSDatatypeExp(XSDatatype dt,
                     ExpressionPool _pool)
Creates this object from existing XSDatatype.

Method Details

createFinalizedType

public XSDatatypeExp createFinalizedType(int finalValue,
                                         GrammarReader reader)
Derives a new type by setting final values.

createIncubator

public XSTypeIncubator createIncubator()
Creates an incubator so that the caller can add more facets and derive a new type.

getClone

public XSDatatypeExp getClone()
Gets a clone of this object.

getCreatedType

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

public State getOwnerState()
Specified by:
getOwnerState in interface GrammarReader.BackPatch

getType

public XSDatatype getType(XSDatatypeExp.RenderingContext context)
Gets the type definition. This method renders the datatype object if it's not rendered yet. Internal use only.

isLateBind

public final boolean isLateBind()

makeList

public static XSDatatypeExp makeList(String nsUri,
                                     String typeName,
                                     XSDatatypeExp itemType,
                                     GrammarReader reader)
            throws DatatypeException
Derives a new type by list.

makeUnion

public static XSDatatypeExp makeUnion(String typeNameUri,
                                      String typeName,
                                      Collection members,
                                      GrammarReader reader)
            throws DatatypeException
Derives a new type by union.

patch

public void patch()
Renders the type (GrammarReader.BackPatch implementation).
Specified by:
patch in interface GrammarReader.BackPatch

redefine

public void redefine(XSDatatypeExp rhs)
Updates this object by copying the state from rhs