Package com.sun.msv.reader.datatype.xsd
Class XSDatatypeExp
- java.lang.Object
-
- com.sun.msv.grammar.Expression
-
- com.sun.msv.grammar.ReferenceExp
-
- com.sun.msv.reader.datatype.xsd.XSDatatypeExp
-
- All Implemented Interfaces:
GrammarReader.BackPatch,java.io.Serializable
public class XSDatatypeExp extends ReferenceExp implements GrammarReader.BackPatch
A wrapper of XSDatatype that serves as an expression and encapsulates lazy-constructed datatypes.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceXSDatatypeExp.Rendererthis object renders the actual datatype object.static classXSDatatypeExp.RenderingContextthis object is used to keep the information about the dependency between late-bind datatype objects.
-
Field Summary
Fields Modifier and Type Field Description private XSDatatypedtDatatype object wrapped by this expression.private java.lang.StringnamespaceUriNamespace URI of this datatype.private StateownerStateState object that creates this late-binding object.private ExpressionPoolpoolExpressionPool that can be used if necessary.private XSDatatypeExp.RendererrendererOnce the parsing is completed, this function object should be able to render the actual datatype object.-
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
Constructors Modifier Constructor Description XSDatatypeExp(XSDatatype dt, ExpressionPool _pool)Creates this object from existing XSDatatype.privateXSDatatypeExp(java.lang.String nsUri, java.lang.String localName)Used only for cloningXSDatatypeExp(java.lang.String nsUri, java.lang.String typeName, GrammarReader reader, XSDatatypeExp.Renderer _renderer)Creates lazily created datatype.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description XSDatatypeExpcreateFinalizedType(int finalValue, GrammarReader reader)Derives a new type by setting final values.XSTypeIncubatorcreateIncubator()Creates an incubator so that the caller can add more facets and derive a new type.XSDatatypeExpgetClone()Gets a clone of this object.XSDatatypegetCreatedType()Gets a encapsulated datatype object This method can be called only after all the datatypes are created.StategetOwnerState()gets State object who has submitted this patch job.XSDatatypegetType(XSDatatypeExp.RenderingContext context)Gets the type definition.booleanisLateBind()static XSDatatypeExpmakeList(java.lang.String nsUri, java.lang.String typeName, XSDatatypeExp itemType, GrammarReader reader)Derives a new type by list.static XSDatatypeExpmakeUnion(java.lang.String typeNameUri, java.lang.String typeName, java.util.Collection members, GrammarReader reader)Derives a new type by union.voidpatch()Renders the type (GrammarReader.BackPatch implementation).voidredefine(XSDatatypeExp rhs)Updates this object by copying the state from rhs-
Methods inherited from class com.sun.msv.grammar.ReferenceExp
calcEpsilonReducibility, calcHashCode, equals, isDefined, visit, visit, visit, visit
-
Methods inherited from class com.sun.msv.grammar.Expression
getExpandedExp, hashCode, hashCode, hashCode, isEpsilonReducible, peelOccurence, readResolve, visit, visit, visit, visit
-
-
-
-
Field Detail
-
namespaceUri
private final java.lang.String namespaceUri
Namespace URI of this datatype. Local name is stored in the name field of ReferenceExp.
-
dt
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,ownerStateandrendererfields are available.
-
pool
private ExpressionPool pool
ExpressionPool that can be used if necessary.
-
ownerState
private transient State ownerState
State object that creates this late-binding object. The source location of this state is used for error message.
-
renderer
private transient XSDatatypeExp.Renderer renderer
Once the parsing is completed, this function object should be able to render the actual datatype object.
-
-
Constructor Detail
-
XSDatatypeExp
public XSDatatypeExp(XSDatatype dt, ExpressionPool _pool)
Creates this object from existing XSDatatype.
-
XSDatatypeExp
public XSDatatypeExp(java.lang.String nsUri, java.lang.String typeName, GrammarReader reader, XSDatatypeExp.Renderer _renderer)Creates lazily created datatype.
-
XSDatatypeExp
private XSDatatypeExp(java.lang.String nsUri, java.lang.String localName)Used only for cloning
-
-
Method Detail
-
createIncubator
public XSTypeIncubator createIncubator()
Creates an incubator so that the caller can add more facets and derive a new type.
-
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.
-
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.
-
patch
public void patch()
Renders the type (GrammarReader.BackPatch implementation).- Specified by:
patchin interfaceGrammarReader.BackPatch
-
getOwnerState
public State getOwnerState()
Description copied from interface:GrammarReader.BackPatchgets State object who has submitted this patch job.- Specified by:
getOwnerStatein interfaceGrammarReader.BackPatch
-
isLateBind
public final boolean isLateBind()
-
getClone
public XSDatatypeExp getClone()
Gets a clone of this object.
-
redefine
public void redefine(XSDatatypeExp rhs)
Updates this object by copying the state from rhs
-
createFinalizedType
public XSDatatypeExp createFinalizedType(int finalValue, GrammarReader reader)
Derives a new type by setting final values.
-
makeList
public static XSDatatypeExp makeList(java.lang.String nsUri, java.lang.String typeName, XSDatatypeExp itemType, GrammarReader reader) throws org.relaxng.datatype.DatatypeException
Derives a new type by list.- Throws:
org.relaxng.datatype.DatatypeException
-
makeUnion
public static XSDatatypeExp makeUnion(java.lang.String typeNameUri, java.lang.String typeName, java.util.Collection members, GrammarReader reader) throws org.relaxng.datatype.DatatypeException
Derives a new type by union.- Throws:
org.relaxng.datatype.DatatypeException
-
-