org.apache.commons.digester
Class WithDefaultsRulesWrapper

java.lang.Object
  extended by org.apache.commons.digester.WithDefaultsRulesWrapper
All Implemented Interfaces:
Rules

public class WithDefaultsRulesWrapper
extends 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

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)
          Return a List of all registered Rule instances that match the specified nesting pattern, or a zero-length List if there are no matches.
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WithDefaultsRulesWrapper

public WithDefaultsRulesWrapper(Rules wrappedRules)
Base constructor.

Parameters:
wrappedRules - the wrapped Rules implementation, not null
Throws:
IllegalArgumentException - when wrappedRules is null
Method Detail

getDigester

public Digester getDigester()
Gets digester using these Rules

Specified by:
getDigester in interface Rules

setDigester

public void setDigester(Digester digester)
Sets digeseter using these Rules

Specified by:
setDigester in interface Rules
Parameters:
digester - The newly associated Digester instance

getNamespaceURI

public String getNamespaceURI()
Gets namespace to apply to Rule's added

Specified by:
getNamespaceURI in interface Rules

setNamespaceURI

public void setNamespaceURI(String namespaceURI)
Sets namespace to apply to Rule's added subsequently

Specified by:
setNamespaceURI in interface Rules
Parameters:
namespaceURI - Namespace URI that must match on all subsequently added rules, or null for matching regardless of the current namespace URI

getDefaults

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


match

public List match(String pattern)
Description copied from interface: Rules
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
Parameters:
namespaceURI - Namespace URI for which to select matching rules, or null to match regardless of namespace URI
pattern - Nesting pattern to be matched

addDefault

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


rules

public List rules()
Gets all rules

Specified by:
rules in interface Rules

clear

public void clear()
Clears all Rule's

Specified by:
clear in interface Rules

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
Parameters:
pattern - Nesting pattern to be matched for this Rule
rule - Rule instance to be registered


Copyright © 2001-2009 The Apache Software Foundation. All Rights Reserved.