org.apache.commons.digester

Class WithDefaultsRulesWrapper

Implemented Interfaces:
Rules

public class WithDefaultsRulesWrapper
extends java.lang.Object
implements Rules

Rules Decorator that returns default rules when no matches are returned by the wrapped implementation.

This allows default Rule instances to be added to any existing Rules implementation. These default Rule instances will be returned for any match for which the wrapped implementation does not return any matches.

For example,

   Rule alpha;
   ...
   WithDefaultsRulesWrapper rules = new WithDefaultsRulesWrapper(new BaseRules());
   rules.addDefault(alpha);
   ...
   digester.setRules(rules);
   ...
 
when a pattern does not match any other rule, then rule alpha will be called.

WithDefaultsRulesWrapper follows the Decorator pattern.

Since:
1.6

Field Summary

private List
allRules
All rules (preserves order in which they were originally added)
private List
defaultRules
Rules to be fired when the wrapped implementations returns none.
private Rules
wrappedRules
The Rules implementation that this class wraps.

Constructor Summary

WithDefaultsRulesWrapper(Rules wrappedRules)
Base constructor.

Method Summary

void
add(String pattern, Rule rule)
Adds a Rule to be fired on given pattern.
void
addDefault(Rule rule)
Adds a rule to be fired when wrapped implementation returns no matches
void
clear()
Clears all Rule's
List
getDefaults()
Gets Rule's which will be fired when the wrapped implementation returns no matches
Digester
getDigester()
Gets digester using these Rules
String
getNamespaceURI()
Gets namespace to apply to Rule's added
List
match(String pattern)
Deprecated. Call match(namespaceURI,pattern) instead.
List
match(String namespaceURI, String pattern)
Return list of rules matching given pattern.
List
rules()
Gets all rules
void
setDigester(Digester digester)
Sets digeseter using these Rules
void
setNamespaceURI(String namespaceURI)
Sets namespace to apply to Rule's added subsequently

Field Details

allRules

private List allRules
All rules (preserves order in which they were originally added)


defaultRules

private List defaultRules
Rules to be fired when the wrapped implementations returns none.


wrappedRules

private Rules wrappedRules
The Rules implementation that this class wraps.

Constructor Details

WithDefaultsRulesWrapper

public WithDefaultsRulesWrapper(Rules wrappedRules)
Base constructor.

Parameters:
wrappedRules - the wrapped Rules implementation, not null

Method Details

add

public void add(String pattern,
                Rule rule)
Adds a Rule to be fired on given pattern. Pattern matching is delegated to wrapped implementation.
Specified by:
add in interface Rules


addDefault

public void addDefault(Rule rule)
Adds a rule to be fired when wrapped implementation returns no matches


clear

public void clear()
Clears all Rule's
Specified by:
clear in interface Rules


getDefaults

public List getDefaults()
Gets Rule's which will be fired when the wrapped implementation returns no matches


getDigester

public Digester getDigester()
Gets digester using these Rules
Specified by:
getDigester in interface Rules


getNamespaceURI

public String getNamespaceURI()
Gets namespace to apply to Rule's added
Specified by:
getNamespaceURI in interface Rules


match

public List match(String pattern)

Deprecated. Call match(namespaceURI,pattern) instead.

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 the add() method.
Specified by:
match in interface Rules

Parameters:
pattern - Nesting pattern to be matched


match

public List match(String namespaceURI,
                  String pattern)
Return list of rules matching given pattern. If wrapped implementation returns any matches return those. Otherwise, return default matches.
Specified by:
match in interface Rules


rules

public List rules()
Gets all rules
Specified by:
rules in interface Rules


setDigester

public void setDigester(Digester digester)
Sets digeseter using these Rules
Specified by:
setDigester in interface Rules


setNamespaceURI

public void setNamespaceURI(String namespaceURI)
Sets namespace to apply to Rule's added subsequently
Specified by:
setNamespaceURI in interface Rules


Copyright 2001-2005 The Apache Software Foundation.