Class RunAwayExpressionChecker
java.lang.Object
com.sun.msv.reader.RunAwayExpressionChecker
- All Implemented Interfaces:
ExpressionVisitorVoid
makes sure that the expression does not run away.
"run-away" expressions are expressions like this.
<hedgeRule label="foo" />
<hedgeRef label="foo" />
</hedgeRule>
Apparently, those expressions cannot be expressed in string regular expression.
Therefore run-away expressions are prohibited in both RELAX and TREX.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate SetExpressions which are used as the content model of current element.protected static final RuntimeExceptionthis exception is thrown to abort check when a error is found.private final GrammarReaderprivate Stackvisited Expressions.private final Setset of ElementExps which are already confirmed as being not a run-away exp.private StackQueue of unchecked element exps. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidbinaryVisit(BinaryExp exp) private voidcheck(Expression exp) static voidcheck(GrammarReader reader, Expression exp) private voidenter(Expression exp) private voidleave()voidvoidonAttribute(AttributeExp exp) voidvoidvoidvoidonElement(ElementExp exp) voidvoidvoidvoidvoidvoidonOneOrMore(OneOrMoreExp exp) voidvoidonRef(ReferenceExp exp) voidonSequence(SequenceExp exp) voidprotected final voidunaryVisit(UnaryExp exp)
-
Field Details
-
eureka
this exception is thrown to abort check when a error is found. -
testedExps
set of ElementExps which are already confirmed as being not a run-away exp. -
contentModel
Expressions which are used as the content model of current element. -
refStack
visited Expressions. this information is useful for the user to figure out where did they make a mistake. -
unprocessedElementExps
Queue of unchecked element exps. -
reader
-
-
Constructor Details
-
RunAwayExpressionChecker
-
-
Method Details
-
check
-
check
-
onAttribute
- Specified by:
onAttributein interfaceExpressionVisitorVoid
-
onConcur
- Specified by:
onConcurin interfaceExpressionVisitorVoid
-
onInterleave
- Specified by:
onInterleavein interfaceExpressionVisitorVoid
-
onSequence
- Specified by:
onSequencein interfaceExpressionVisitorVoid
-
onChoice
- Specified by:
onChoicein interfaceExpressionVisitorVoid
-
onOneOrMore
- Specified by:
onOneOrMorein interfaceExpressionVisitorVoid
-
onMixed
- Specified by:
onMixedin interfaceExpressionVisitorVoid
-
onList
- Specified by:
onListin interfaceExpressionVisitorVoid
-
onEpsilon
public void onEpsilon()- Specified by:
onEpsilonin interfaceExpressionVisitorVoid
-
onNullSet
public void onNullSet()- Specified by:
onNullSetin interfaceExpressionVisitorVoid
-
onAnyString
public void onAnyString()- Specified by:
onAnyStringin interfaceExpressionVisitorVoid
-
onData
- Specified by:
onDatain interfaceExpressionVisitorVoid
-
onValue
- Specified by:
onValuein interfaceExpressionVisitorVoid
-
binaryVisit
-
unaryVisit
-
enter
-
leave
private void leave() -
onRef
- Specified by:
onRefin interfaceExpressionVisitorVoid
-
onOther
- Specified by:
onOtherin interfaceExpressionVisitorVoid
-
onElement
- Specified by:
onElementin interfaceExpressionVisitorVoid
-