org.apache.commons.digester

Class RegexRules

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
classRegexRules.RegisteredRule
Used to associate rules with paths in the rules list
Field Summary
RegexMatchermatcher
The regex strategy used by this RegexRules
ArrayListregisteredRules
All registered Rule's
Constructor Summary
RegexRules(RegexMatcher matcher)
Construct sets the Regex matching strategy.
Method Summary
voidclear()
Clear all existing Rule instance registrations.
RegexMatchergetRegexMatcher()
Gets the current regex matching strategy.
Listmatch(String namespaceURI, String pattern)
Finds matching rules by using current regex matching strategy.
protected voidregisterRule(String pattern, Rule rule)
Register a new Rule instance matching the specified pattern.
Listrules()
Return a List of all registered Rule instances, or a zero-length List if there are no registered Rule instances.
voidsetRegexMatcher(RegexMatcher matcher)
Sets the current regex matching strategy.

Field Detail

matcher

private RegexMatcher matcher
The regex strategy used by this RegexRules

registeredRules

private ArrayList registeredRules
All registered Rule's

Constructor Detail

RegexRules

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

Parameters: matcher the regex strategy to be used, not null

Throws: IllegalArgumentException if the strategy is null

Method Detail

clear

public void clear()
Clear all existing Rule instance registrations.

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.

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.

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.

setRegexMatcher

public void setRegexMatcher(RegexMatcher matcher)
Sets the current regex matching strategy.

Parameters: matcher use this RegexMatcher, not null

Throws: IllegalArgumentException if the strategy is null

Copyright 2001-2005 The Apache Software Foundation.