com.sun.msv.grammar
Class ReferenceExp

java.lang.Object
  extended by com.sun.msv.grammar.Expression
      extended by com.sun.msv.grammar.ReferenceExp
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AttPoolClause, AttributeDeclExp, ElementDeclExp, ElementRules, HedgeRules, RedefinableExp, TagClause, TREXGrammar, XSDatatypeExp

public class ReferenceExp
extends Expression

Reference to the other expression.

In RELAX grammar, this class is used as a base class of elementRule reference and hedgeRule reference. TREX uses this class directly.

This object is created and controlled by TREXGrammar/RELAXModule object, rather than ExpressionPool. Therefore, this object is not a subject to unification.

This class can be derived. In fact, many classes derive this class.

Author:
Kohsuke KAWAGUCHI
See Also:
Serialized Form

Field Summary
 Expression exp
          child expression.
 String name
          name of the referenced expression.
 
Fields inherited from class com.sun.msv.grammar.Expression
anyString, epsilon, nullSet, verifierTag
 
Constructor Summary
ReferenceExp(String name)
           
ReferenceExp(String name, Expression exp)
           
 
Method Summary
protected  boolean calcEpsilonReducibility()
          computes epsilon reducibility
protected  int calcHashCode()
          Computes the hashCode again.
 boolean equals(Object o)
           
 boolean isDefined()
          checks if this ReferenceExp is properly defined.
 Object visit(ExpressionVisitor visitor)
           
 boolean visit(ExpressionVisitorBoolean visitor)
           
 Expression visit(ExpressionVisitorExpression visitor)
           
 void visit(ExpressionVisitorVoid visitor)
           
 
Methods inherited from class com.sun.msv.grammar.Expression
getExpandedExp, hashCode, hashCode, hashCode, isEpsilonReducible, peelOccurence, readResolve, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

exp

public Expression exp
child expression. Due to the possible forward reference, this variable is not available when the object is instanciated. Actual expression will be set once if the definition is parsed.


name

public final String name
name of the referenced expression. can be null for anonymously referenced expression.

Constructor Detail

ReferenceExp

public ReferenceExp(String name)

ReferenceExp

public ReferenceExp(String name,
                    Expression exp)
Method Detail

calcHashCode

protected final int calcHashCode()
Description copied from class: Expression
Computes the hashCode again.

This method and the parameter to the constructor has to be the same. This method is used when the object is being read from the stream.

Specified by:
calcHashCode in class Expression

isDefined

public boolean isDefined()
checks if this ReferenceExp is properly defined. this method is used to detect undeclared definitions. Derived classes can override this method.


equals

public boolean equals(Object o)
Specified by:
equals in class Expression

calcEpsilonReducibility

protected boolean calcEpsilonReducibility()
Description copied from class: Expression
computes epsilon reducibility

Specified by:
calcEpsilonReducibility in class Expression

visit

public final Object visit(ExpressionVisitor visitor)
Specified by:
visit in class Expression

visit

public final Expression visit(ExpressionVisitorExpression visitor)
Specified by:
visit in class Expression

visit

public final boolean visit(ExpressionVisitorBoolean visitor)
Specified by:
visit in class Expression

visit

public final void visit(ExpressionVisitorVoid visitor)
Specified by:
visit in class Expression


MSV