Package org.apache.commons.digester
Class RulesBase
- java.lang.Object
-
- org.apache.commons.digester.RulesBase
-
- All Implemented Interfaces:
Rules
- Direct Known Subclasses:
ExtendedBaseRules
public class RulesBase extends java.lang.Object implements Rules
Default implementation of the
Rules
interface that supports the standard rule matching behavior. This class can also be used as a base class for specializedRules
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.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.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 java.lang.String
namespaceURI
The namespace URI for which subsequently addedRule
objects are relevant, ornull
for matching independent of namespaces.protected java.util.ArrayList
rules
The set of registered Rule instances, in the order that they were originally registered.
-
Constructor Summary
Constructors Constructor Description RulesBase()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
add(java.lang.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.java.lang.String
getNamespaceURI()
Return the namespace URI that will be applied to all subsequently addedRule
objects.protected java.util.List
lookup(java.lang.String namespaceURI, java.lang.String pattern)
Return a List of Rule instances for the specified pattern that also match the specified namespace URI (if any).java.util.List
match(java.lang.String pattern)
Deprecated.Call match(namespaceURI,pattern) instead.java.util.List
match(java.lang.String namespaceURI, java.lang.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.java.util.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(java.lang.String namespaceURI)
Set the namespace URI that will be applied to all subsequently addedRule
objects.
-
-
-
Field Detail
-
cache
protected java.util.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 java.lang.String namespaceURI
The namespace URI for which subsequently addedRule
objects are relevant, ornull
for matching independent of namespaces.
-
rules
protected java.util.ArrayList rules
The set of registered Rule instances, in the order that they were originally registered.
-
-
Method Detail
-
getDigester
public Digester getDigester()
Return the Digester instance with which this Rules instance is associated.- Specified by:
getDigester
in interfaceRules
-
setDigester
public void setDigester(Digester digester)
Set the Digester instance with which this Rules instance is associated.- Specified by:
setDigester
in interfaceRules
- Parameters:
digester
- The newly associated Digester instance
-
getNamespaceURI
public java.lang.String getNamespaceURI()
Return the namespace URI that will be applied to all subsequently addedRule
objects.- Specified by:
getNamespaceURI
in interfaceRules
-
setNamespaceURI
public void setNamespaceURI(java.lang.String namespaceURI)
Set the namespace URI that will be applied to all subsequently addedRule
objects.- Specified by:
setNamespaceURI
in interfaceRules
- Parameters:
namespaceURI
- Namespace URI that must match on all subsequently added rules, ornull
for matching regardless of the current namespace URI
-
add
public void add(java.lang.String pattern, Rule rule)
Register a new Rule instance matching the specified pattern.
-
clear
public void clear()
Clear all existing Rule instance registrations.
-
match
public java.util.List match(java.lang.String pattern)
Deprecated.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 theadd()
method.
-
match
public java.util.List match(java.lang.String namespaceURI, java.lang.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 theadd()
method.
-
rules
public java.util.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 theadd()
method.
-
lookup
protected java.util.List lookup(java.lang.String namespaceURI, java.lang.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, returnnull
.- Parameters:
namespaceURI
- Namespace URI to match, ornull
to select matching rules regardless of namespace URIpattern
- Pattern to be matched
-
-