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
Rulesinterface that supports the standard rule matching behavior. This class can also be used as a base class for specializedRulesimplementations.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>>cacheThe set of registered Rule instances, keyed by the matching pattern.protected DigesterdigesterThe Digester instance with which this Rules instance is associated.protected java.util.ArrayList<Rule>rulesThe 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 voidadd(java.lang.String pattern, Rule rule)Register a new Rule instance matching the specified pattern.voidclear()Clear all existing Rule instance registrations.DigestergetDigester()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.voidsetDigester(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:
getDigesterin 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:
setDigesterin 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, ornullto select matching rules regardless of namespace URIpattern- Pattern to be matched- Returns:
- a rules list
-
-