Package org.apache.commons.digester
Class RegexRules
- java.lang.Object
-
- org.apache.commons.digester.AbstractRulesImpl
-
- org.apache.commons.digester.RegexRules
-
- All Implemented Interfaces:
Rules
public class RegexRules extends AbstractRulesImpl
Rules implementation that uses regular expression matching for paths.
The regex implementation is pluggable, allowing different strategies to be used. The basic way that this class work does not vary. All patterns are tested to see if they match the path using the regex matcher. All those that do are return in the order which the rules were added.
- Since:
- 1.5
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
RegexRules.RegisteredRule
Used to associate rules with paths in the rules list
-
Field Summary
Fields Modifier and Type Field Description private RegexMatcher
matcher
The regex strategy used by this RegexRulesprivate java.util.ArrayList
registeredRules
All registeredRule
's
-
Constructor Summary
Constructors Constructor Description RegexRules(RegexMatcher matcher)
Construct sets the Regex matching strategy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Clear all existing Rule instance registrations.RegexMatcher
getRegexMatcher()
Gets the current regex matching strategy.java.util.List
match(java.lang.String namespaceURI, java.lang.String pattern)
Finds matching rules by using current regex matching strategy.protected void
registerRule(java.lang.String pattern, Rule rule)
Register a new Rule instance matching the specified pattern.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
setRegexMatcher(RegexMatcher matcher)
Sets the current regex matching strategy.-
Methods inherited from class org.apache.commons.digester.AbstractRulesImpl
add, getDigester, getNamespaceURI, match, setDigester, setNamespaceURI
-
-
-
-
Field Detail
-
registeredRules
private java.util.ArrayList registeredRules
All registeredRule
's
-
matcher
private RegexMatcher matcher
The regex strategy used by this RegexRules
-
-
Constructor Detail
-
RegexRules
public RegexRules(RegexMatcher matcher)
Construct sets the Regex matching strategy.- Parameters:
matcher
- the regex strategy to be used, not null- Throws:
java.lang.IllegalArgumentException
- if the strategy is null
-
-
Method Detail
-
getRegexMatcher
public RegexMatcher getRegexMatcher()
Gets the current regex matching strategy.
-
setRegexMatcher
public void setRegexMatcher(RegexMatcher matcher)
Sets the current regex matching strategy.- Parameters:
matcher
- use this RegexMatcher, not null- Throws:
java.lang.IllegalArgumentException
- if the strategy is null
-
registerRule
protected void registerRule(java.lang.String pattern, Rule rule)
Register a new Rule instance matching the specified pattern.- Specified by:
registerRule
in classAbstractRulesImpl
- Parameters:
pattern
- Nesting pattern to be matched for this Rulerule
- Rule instance to be registered
-
clear
public void clear()
Clear all existing Rule instance registrations.- Specified by:
clear
in interfaceRules
- Specified by:
clear
in classAbstractRulesImpl
-
match
public java.util.List match(java.lang.String namespaceURI, java.lang.String pattern)
Finds matching rules by using current regex matching strategy. The rule associated with each path that matches is added to the list of matches. The order of matching rules is the same order that they were added.- Specified by:
match
in interfaceRules
- Specified by:
match
in classAbstractRulesImpl
- Parameters:
namespaceURI
- Namespace URI for which to select matching rules, ornull
to match regardless of namespace URIpattern
- Nesting pattern to be matched- Returns:
- a list of matching
Rule
's
-
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.- Specified by:
rules
in interfaceRules
- Specified by:
rules
in classAbstractRulesImpl
-
-