org.apache.commons.digester

Class RegexRules

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

private class
RegexRules.RegisteredRule
Used to associate rules with paths in the rules list

Field Summary

private RegexMatcher
matcher
The regex strategy used by this RegexRules
private ArrayList
registeredRules
All registered Rule's

Fields inherited from class org.apache.commons.digester.AbstractRulesImpl

digester, namespaceURI

Constructor Summary

RegexRules(RegexMatcher matcher)
Construct sets the Regex matching strategy.

Method Summary

void
clear()
Clear all existing Rule instance registrations.
RegexMatcher
getRegexMatcher()
Gets the current regex matching strategy.
List
match(String namespaceURI, String pattern)
Finds matching rules by using current regex matching strategy.
protected void
registerRule(String pattern, Rule rule)
Register a new Rule instance matching the specified pattern.
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, clear, getDigester, getNamespaceURI, match, match, registerRule, rules, setDigester, setNamespaceURI

Field Details

matcher

private RegexMatcher matcher
The regex strategy used by this RegexRules

registeredRules

private ArrayList registeredRules
All registered Rule's

Constructor Details

RegexRules

public RegexRules(RegexMatcher matcher)
Construct sets the Regex matching strategy.
Parameters:
matcher - the regex strategy to be used, not null

Method Details

clear

public void clear()
Clear all existing Rule instance registrations.
Specified by:
clear in interface Rules
Overrides:
clear in interface AbstractRulesImpl

getRegexMatcher

public RegexMatcher getRegexMatcher()
Gets the current regex matching strategy.

match

public List match(String namespaceURI,
                  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 interface Rules
Overrides:
match in interface AbstractRulesImpl
Parameters:
namespaceURI - Namespace URI for which to select matching rules, or null to match regardless of namespace URI
pattern - Nesting pattern to be matched
Returns:
a list of matching Rule's

registerRule

protected void registerRule(String pattern,
                            Rule rule)
Register a new Rule instance matching the specified pattern.
Overrides:
registerRule in interface AbstractRulesImpl
Parameters:
pattern - Nesting pattern to be matched for this Rule
rule - Rule instance to be registered

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.
Specified by:
rules in interface Rules
Overrides:
rules in interface AbstractRulesImpl

setRegexMatcher

public void setRegexMatcher(RegexMatcher matcher)
Sets the current regex matching strategy.
Parameters:
matcher - use this RegexMatcher, not null

Copyright 2001-2005 The Apache Software Foundation.