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, setNamespaceURIprotected HashMap<String,List<Rule>> cache
protected List<String> wildcardCache
public RulesBase()
public void setDigester(Digester digester)
setDigester in interface RulessetDigester in class AbstractRulesImpldigester - 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 AbstractRulesImplpattern - 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.