org.apache.commons.digester
Class RulesBase
java.lang.Object
org.apache.commons.digester.RulesBase
- Rules
public class RulesBase
extends java.lang.Object
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:
- Exact Match - A pattern "a/b/c" exactly matches a
<c>
element, nested inside a <b>
element, which is nested inside an <a>
element. - Tail Match - A pattern "*/a/b" matches a
<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.digester
for more information.
protected HashMap | cache - The set of registered Rule instances, keyed by the matching pattern.
|
protected Digester | digester - The Digester instance with which this Rules instance is associated.
|
protected String | namespaceURI - The namespace URI for which subsequently added
Rule
objects are relevant, or null for matching independent
of namespaces.
|
protected ArrayList | rules - The set of registered Rule instances, in the order that they were
originally registered.
|
void | add(String pattern, Rule rule) - Register a new Rule instance matching the specified pattern.
|
void | clear() - Clear all existing Rule instance registrations.
|
Digester | getDigester() - Return the Digester instance with which this Rules instance is
associated.
|
String | getNamespaceURI() - Return the namespace URI that will be applied to all subsequently
added
Rule objects.
|
protected List | 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 | match(String pattern) - Call match(namespaceURI,pattern) instead.
|
List | match(String namespaceURI, String pattern) - Return a List of all registered Rule instances that match the specified
nesting pattern, or a zero-length List if there are no matches.
|
List | 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.
|
void | setNamespaceURI(String namespaceURI) - Set the namespace URI that will be applied to all subsequently
added
Rule objects.
|
cache
protected HashMap cache
The set of registered Rule instances, keyed by the matching pattern.
Each value is a List containing the Rules for that pattern, in the
order that they were orginally registered.
digester
protected Digester digester
The Digester instance with which this Rules instance is associated.
namespaceURI
protected String namespaceURI
The namespace URI for which subsequently added Rule
objects are relevant, or null
for matching independent
of namespaces.
rules
protected ArrayList rules
The set of registered Rule instances, in the order that they were
originally registered.
add
public void add(String pattern,
Rule rule)
Register a new Rule instance matching the specified pattern.
- add in interface Rules
pattern
- Nesting pattern to be matched for this Rulerule
- Rule instance to be registered
clear
public void clear()
Clear all existing Rule instance registrations.
- clear in interface Rules
getDigester
public Digester getDigester()
Return the Digester instance with which this Rules instance is
associated.
- getDigester in interface Rules
getNamespaceURI
public String getNamespaceURI()
Return the namespace URI that will be applied to all subsequently
added Rule
objects.
- getNamespaceURI in interface Rules
lookup
protected List lookup(String namespaceURI,
String pattern)
Return a List of Rule instances for the specified pattern that also
match the specified namespace URI (if any). If there are no such
rules, return null
.
namespaceURI
- Namespace URI to match, or null
to
select matching rules regardless of namespace URIpattern
- Pattern to be matched
match
public List match(String pattern)
Call match(namespaceURI,pattern) instead.
Return a List of all registered Rule instances that match the specified
nesting pattern, or a zero-length List if there are no matches. If more
than one Rule instance matches, they must be returned
in the order originally registered through the add()
method.
- match in interface Rules
pattern
- Nesting pattern to be matched
match
public List match(String namespaceURI,
String pattern)
Return a List of all registered Rule instances that match the specified
nesting pattern, or a zero-length List if there are no matches. If more
than one Rule instance matches, they must be returned
in the order originally registered through the add()
method.
- match in interface Rules
namespaceURI
- Namespace URI for which to select matching rules,
or null
to match regardless of namespace URIpattern
- Nesting pattern to be matched
rules
public List rules()
Return a List of all registered Rule instances, or a zero-length List
if there are no registered Rule instances. If more than one Rule
instance has been registered, they must be returned
in the order originally registered through the add()
method.
- rules in interface Rules
setDigester
public void setDigester(Digester digester)
Set the Digester instance with which this Rules instance is associated.
- setDigester in interface Rules
digester
- The newly associated Digester instance
setNamespaceURI
public void setNamespaceURI(String namespaceURI)
Set the namespace URI that will be applied to all subsequently
added Rule
objects.
- setNamespaceURI in interface Rules
namespaceURI
- Namespace URI that must match on all
subsequently added rules, or null
for matching
regardless of the current namespace URI
Copyright 2001-2005 The Apache Software Foundation.