In "lax" mode, we need a name class that matches all undefined names. Although it is possible to use DifferenceNameClass for this purpose, it is not a cost-efficient way because typically it becomes very large. (If there are twenty element declarations, we'll need twenty DifferenceNameClass to exclude all defined names).
This name class uses a Set to hold multiple names. If a name
is contained in that set, it'll be rejected. If a name is not contained,
it'll be accepted.
Special care is taken to make this NC as seamless as possible. When the visit method is called, the equivalent name class is constructed internally and the visitor will visit that name class. In this way, the visitors won't notice the existance of this "special" name class.
| Modifier and Type | Field and Description |
|---|---|
| private NameClass | |
| protected NameClass | equivalentNameClass
equivalent name class by conventional primitives. |
| private final Set | names
set of |
| private static final long |
| Access | Constructor and Description |
|---|---|
| public | LaxDefaultNameClass(NameClass
this name class accepts a name if
_base)
|
| Modifier and Type | Method and Description |
|---|---|
| public boolean | accepts(String
namespace URI to be tested. If this value equals to
NAMESPACE_WILDCARD, implementation must assume that
valid namespace is specified. this twist will be used for
error diagnosis. namespaceURI, String local part to be tested. As with namespaceURI, LOCALNAME_WILDCARD
will acts as a wild card. localName)Implements abstract com. |
| public void | |
| public Object | visit(NameClassVisitor visitor)
Implements abstract com. |
| base | back to summary |
|---|---|
| private NameClass base | |
| equivalentNameClass | back to summary |
|---|---|
| protected NameClass equivalentNameClass equivalent name class by conventional primitives. Initially null, and created on demand. | |
| names | back to summary |
|---|---|
| private final Set<StringPair> names set of | |
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID | |
| LaxDefaultNameClass | back to summary |
|---|---|
public LaxDefaultNameClass(NameClass _base)
| |
| accepts | back to summary |
|---|---|
| public boolean accepts(String namespaceURI, String localName) Implements abstract com. Doc from com. checks if this name class accepts given namespace:localName pair.
| |
| addName | back to summary |
|---|---|
| public void addName(String namespaceURI, String localName) add a name so that this name will be rejected by the accepts method. | |
| visit | back to summary |
|---|---|
| public Object visit(NameClassVisitor visitor) Implements abstract com. Doc from com. visitor pattern support | |