Package org.apache.tomcat.util.digester
Class RulesBase
- java.lang.Object
-
- org.apache.tomcat.util.digester.RulesBase
-
- All Implemented Interfaces:
Rules
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.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.HashMap<java.lang.String,java.util.List<Rule>>
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.util.ArrayList<Rule>
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 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.protected java.util.List<Rule>
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<Rule>
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<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.
-
-
-
Field Detail
-
cache
protected java.util.HashMap<java.lang.String,java.util.List<Rule>> 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 originally registered.
-
digester
protected Digester digester
The Digester instance with which this Rules instance is associated.
-
rules
protected java.util.ArrayList<Rule> 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
- Returns:
- the Digester instance with which this Rules instance is associated.
-
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
-
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<Rule> 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<Rule> 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<Rule> 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- Returns:
- a rules list
-
-