com.sun.msv.grammar

Class OtherExp

Implemented Interfaces:
Serializable
Known Direct Subclasses:
ExternalAttributeExp, OccurrenceExp

public class OtherExp
extends Expression

Base class for application-specific AGM annotation.

This primitive has no meaning to MSV. For example, the following expression

 Expression exp = new OtherExp( pool.createSequence(a,b) );
 
is treated as if MSV sees the following, OtherExp-less expression:
 Expression exp = pool.createSequence(a,b);
 

By using this "transparency", application can implement derived classes of OtherExp and add application-specific information to AGM.

For example, you can implement AnnotationInfoExp class that derives OtherExp and introduces "documentation" field. Then you'll write a customized XMLSchemaReader that parses <annotation> tag and mix AnnotationInfoExp into an AGM. Your application can then examine it and do some useful things.

Those application-specific information added through OtherExp are completely ignored by MSV. So the annotated AGM can still be used just like anormal AGM.

Author:
Kohsuke KAWAGUCHI
See Also:
Serialized Form

Field Summary

Expression
exp
child expression.

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

anyString, epsilon, nullSet, verifierTag

Constructor Summary

OtherExp()
this constructor can be used for the ununified expressions.
OtherExp(Expression exp)

Method Summary

boolean
equals(Object o)
String
printName()
returns the string which will be used by ExpressionPrinter to print this expression.
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

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

Field Details

exp

public Expression exp
child expression.

Constructor Details

OtherExp

public OtherExp()
this constructor can be used for the ununified expressions. the only reason there are two parameters is to prevent unintentional use of the default constructor.

OtherExp

public OtherExp(Expression exp)

Method Details

equals

public boolean equals(Object o)
Overrides:
equals in interface Expression

printName

public String printName()
returns the string which will be used by ExpressionPrinter to print this expression.

visit

public final Object visit(ExpressionVisitor visitor)
Overrides:
visit in interface Expression

visit

public final boolean visit(ExpressionVisitorBoolean visitor)
Overrides:
visit in interface Expression

visit

public final Expression visit(ExpressionVisitorExpression visitor)
Overrides:
visit in interface Expression

visit

public final void visit(ExpressionVisitorVoid visitor)
Overrides:
visit in interface Expression