Package com.sun.msv.reader.trex.ng
Class RestrictionChecker.DuplicateNameChecker
- java.lang.Object
-
- com.sun.msv.reader.trex.ng.RestrictionChecker.DuplicateNameChecker
-
- Direct Known Subclasses:
RestrictionChecker.DuplicateAttributesChecker
,RestrictionChecker.DuplicateElementsChecker
- Enclosing class:
- RestrictionChecker
protected abstract class RestrictionChecker.DuplicateNameChecker extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected int
areaLen
protected int[]
areas
areas.private NameClassCollisionChecker
checker
Name class checker object.protected NameClassAndExpression[]
exps
ElementExps will be added into this array.protected int
expsLen
Number of items in the atts array.
-
Constructor Summary
Constructors Modifier Constructor Description protected
DuplicateNameChecker()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
add(NameClassAndExpression exp)
Adds newly found element or attribute.protected abstract void
check(NameClassAndExpression exp)
tests a given exp against existing expressions (which are stored in the exps field.)protected void
check(NameClassAndExpression newExp, NameClassAndExpression oldExp)
Tests two name classes to see if they collide.void
endLeftBranch(int start)
void
endRightBranch()
protected abstract java.lang.String
getErrorMessage()
Gets the error message resource name.int
start()
-
-
-
Field Detail
-
exps
protected NameClassAndExpression[] exps
ElementExps will be added into this array.
-
expsLen
protected int expsLen
Number of items in the atts array.
-
areas
protected int[] areas
areas.An area is a range of index designated by the start and end. Areas are stored as:
{ start, end, start, end, ... }
The start method gives the index. The endLeftBranch method creates an area by using the start index given by the start method. The endRightBranch method will remove the area.
When testing duplicate attributes, areas are created by ChoiceExp and used to exclude test candidates (as two attributes can share the same name if they are in different branches of choice.)
When testing duplicate elements, areas are created by InterleaveExp and used to include test candidates (as two elements cannot share the same name if they are in different branches of interleave.)
-
areaLen
protected int areaLen
-
checker
private final NameClassCollisionChecker checker
Name class checker object. One object is reused throughout the test.
-
-
Method Detail
-
add
public void add(NameClassAndExpression exp)
Adds newly found element or attribute.
-
check
protected abstract void check(NameClassAndExpression exp)
tests a given exp against existing expressions (which are stored in the exps field.)
-
start
public int start()
-
endLeftBranch
public void endLeftBranch(int start)
-
endRightBranch
public void endRightBranch()
-
check
protected void check(NameClassAndExpression newExp, NameClassAndExpression oldExp)
Tests two name classes to see if they collide.
-
getErrorMessage
protected abstract java.lang.String getErrorMessage()
Gets the error message resource name.
-
-