Top Description Fields Constructors Methods
com.sun.msv.reader

public Class RunAwayExpressionChecker

extends Object
implements ExpressionVisitorVoid
Class Inheritance
All Implemented Interfaces
com.sun.msv.grammar.ExpressionVisitorVoid
Imports
java.util.Set, .Stack, .Vector, org.xml.sax.Locator, com.sun.msv.grammar.AttributeExp, .BinaryExp, .ChoiceExp, .ConcurExp, .DataExp, .ElementExp, .Expression, .ExpressionVisitorVoid, .InterleaveExp, .ListExp, .MixedExp, .OneOrMoreExp, .OtherExp, .ReferenceExp, .SequenceExp, .UnaryExp, .ValueExp

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.
Author
Kohsuke KAWAGUCHI

Field Summary

Modifier and TypeField and Description
private Set<Expression>
contentModel

Expressions which are used as the content model of current element.

protected static final RuntimeException
eureka

this exception is thrown to abort check when a error is found.

private final GrammarReader
private Stack<Expression>
refStack

visited Expressions.

private final Set<Expression>
testedExps

set of ElementExps which are already confirmed as being not a run-away exp.

private Stack<Expression>
unprocessedElementExps

Queue of unchecked element exps.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
protected final void
private void
public static void
private void
private void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
protected final void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

contentModelback to summary
private Set<Expression> contentModel

Expressions which are used as the content model of current element.

eurekaback to summary
protected static final RuntimeException eureka

this exception is thrown to abort check when a error is found.

readerback to summary
private final GrammarReader reader
refStackback to summary
private Stack<Expression> refStack

visited Expressions. this information is useful for the user to figure out where did they make a mistake.

testedExpsback to summary
private final Set<Expression> testedExps

set of ElementExps which are already confirmed as being not a run-away exp.

unprocessedElementExpsback to summary
private Stack<Expression> unprocessedElementExps

Queue of unchecked element exps.

Constructor Detail

RunAwayExpressionCheckerback to summary
protected RunAwayExpressionChecker(GrammarReader reader)

Method Detail

binaryVisitback to summary
protected final void binaryVisit(BinaryExp exp)
checkback to summary
private void check(Expression exp)
checkback to summary
public static void check(GrammarReader reader, Expression exp)
enterback to summary
private void enter(Expression exp)
leaveback to summary
private void leave()
onAnyStringback to summary
public void onAnyString()

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onAnyString.

onAttributeback to summary
public void onAttribute(AttributeExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onAttribute.

onChoiceback to summary
public void onChoice(ChoiceExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onChoice.

onConcurback to summary
public void onConcur(ConcurExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onConcur.

onDataback to summary
public void onData(DataExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onData.

onElementback to summary
public void onElement(ElementExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onElement.

onEpsilonback to summary
public void onEpsilon()

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onEpsilon.

onInterleaveback to summary
public void onInterleave(InterleaveExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onInterleave.

onListback to summary
public void onList(ListExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onList.

onMixedback to summary
public void onMixed(MixedExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onMixed.

onNullSetback to summary
public void onNullSet()

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onNullSet.

onOneOrMoreback to summary
public void onOneOrMore(OneOrMoreExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onOneOrMore.

onOtherback to summary
public void onOther(OtherExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onOther.

onRefback to summary
public void onRef(ReferenceExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onRef.

onSequenceback to summary
public void onSequence(SequenceExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onSequence.

onValueback to summary
public void onValue(ValueExp exp)

Implements com.sun.msv.grammar.ExpressionVisitorVoid.onValue.

unaryVisitback to summary
protected final void unaryVisit(UnaryExp exp)