com.sun.msv.reader.datatype.xsd
Class XSDatatypeExp

java.lang.Object
  extended by com.sun.msv.grammar.Expression
      extended by com.sun.msv.grammar.ReferenceExp
          extended by com.sun.msv.reader.datatype.xsd.XSDatatypeExp
All 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(com.sun.msv.datatype.xsd.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.
 com.sun.msv.datatype.xsd.XSDatatype getCreatedType()
          Gets a encapsulated datatype object This method can be called only after all the datatypes are created.
 State getOwnerState()
          gets State object who has submitted this patch job.
 com.sun.msv.datatype.xsd.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
getExpandedExp, hashCode, isEpsilonReducible, peelOccurence, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XSDatatypeExp

public XSDatatypeExp(com.sun.msv.datatype.xsd.XSDatatype dt,
                     ExpressionPool _pool)
Creates this object from existing XSDatatype.


XSDatatypeExp

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

Method Detail

createIncubator

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


getCreatedType

public com.sun.msv.datatype.xsd.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 com.sun.msv.datatype.xsd.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:
patch in interface GrammarReader.BackPatch

getOwnerState

public State getOwnerState()
Description copied from interface: GrammarReader.BackPatch
gets State object who has submitted this patch job.

Specified by:
getOwnerState in interface GrammarReader.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(String nsUri,
                                     String typeName,
                                     XSDatatypeExp itemType,
                                     GrammarReader reader)
                              throws DatatypeException
Derives a new type by list.

Throws:
DatatypeException

makeUnion

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

Throws:
DatatypeException