public class RulesBase extends AbstractRulesImpl
Default implementation of the Rules
interface that supports the standard rule matching behavior. This
class can also be used as a base class for specialized Rules
implementations.
The matching policies implemented by this class support two different types of pattern matching rules:
<c>
element, nested inside a
<b>
element, which is nested inside an <a>
element.<b>
element, nested inside an
<a>
element, no matter how deeply the pair is nested.Note that wildcard patterns are ignored if an explicit match can be found (and when multiple wildcard patterns match, only the longest, ie most explicit, pattern is considered a match).
See the package documentation for package org.apache.commons.digester3 for more information.
Modifier and Type | Field and Description |
---|---|
protected HashMap<String,List<Rule>> |
cache
The set of registered Rule instances, keyed by the matching pattern.
|
protected ArrayList<Rule> |
rules
The set of registered Rule instances, in the order that they were originally registered.
|
protected List<String> |
wildcardCache
The subset of registered Rule instances with wildcard pattern.
|
Constructor and Description |
---|
RulesBase() |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Clear all existing Rule instance registrations.
|
protected List<Rule> |
lookup(String namespaceURI,
String pattern)
Return a List of Rule instances for the specified pattern that also match the specified namespace URI (if any).
|
List<Rule> |
match(String namespaceURI,
String pattern,
String name,
Attributes attributes)
Return a List of all registered Rule instances that match the specified nesting pattern, or a zero-length List if
there are no matches.
|
protected void |
registerRule(String pattern,
Rule rule)
Register rule at given pattern.
|
List<Rule> |
rules()
Return a List of all registered Rule instances, or a zero-length List if there are no registered Rule instances.
|
void |
setDigester(Digester digester)
Set the Digester instance with which this Rules instance is associated.
|
add, getDigester, getNamespaceURI, setNamespaceURI
protected HashMap<String,List<Rule>> cache
protected List<String> wildcardCache
public RulesBase()
public void setDigester(Digester digester)
setDigester
in interface Rules
setDigester
in class AbstractRulesImpl
digester
- The newly associated Digester instanceprotected void registerRule(String pattern, Rule rule)
Rule
can
be assumed to have been set properly before this method is called.registerRule
in class AbstractRulesImpl
pattern
- Nesting pattern to be matched for this Rulerule
- Rule instance to be registeredpublic void clear()
public List<Rule> match(String namespaceURI, String pattern, String name, Attributes attributes)
add()
method.namespaceURI
- Namespace URI for which to select matching rules, or null
to match regardless of
namespace URIpattern
- Nesting pattern to be matchedname
- the local name if the parser is namespace aware, or just the element name otherwiseattributes
- The attribute list of the current matching elementpublic List<Rule> rules()
add()
method.protected List<Rule> lookup(String namespaceURI, String pattern)
null
.namespaceURI
- Namespace URI to match, or null
to select matching rules regardless of namespace
URIpattern
- Pattern to be matchedCopyright © 2001-2013 The Apache Software Foundation. All Rights Reserved.