Package org.apache.commons.digester
Class WithDefaultsRulesWrapper
- java.lang.Object
-
- org.apache.commons.digester.WithDefaultsRulesWrapper
-
- All 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 existingRules
implementation. These defaultRule
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
Fields Modifier and Type Field Description private java.util.List
allRules
All rules (preserves order in which they were originally added)private java.util.List
defaultRules
Rules to be fired when the wrapped implementations returns none.private Rules
wrappedRules
The Rules implementation that this class wraps.
-
Constructor Summary
Constructors Constructor Description WithDefaultsRulesWrapper(Rules wrappedRules)
Base constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(java.lang.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 matchesvoid
clear()
Clears all Rule'sjava.util.List
getDefaults()
Gets Rule's which will be fired when the wrapped implementation returns no matchesDigester
getDigester()
Gets digester using these Rulesjava.lang.String
getNamespaceURI()
Gets namespace to apply to Rule's addedjava.util.List
match(java.lang.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.java.util.List
match(java.lang.String namespaceURI, java.lang.String pattern)
Return list of rules matching given pattern.java.util.List
rules()
Gets all rulesvoid
setDigester(Digester digester)
Sets digeseter using these Rulesvoid
setNamespaceURI(java.lang.String namespaceURI)
Sets namespace to apply to Rule's added subsequently
-
-
-
Field Detail
-
wrappedRules
private Rules wrappedRules
The Rules implementation that this class wraps.
-
defaultRules
private java.util.List defaultRules
Rules to be fired when the wrapped implementations returns none.
-
allRules
private java.util.List allRules
All rules (preserves order in which they were originally added)
-
-
Constructor Detail
-
WithDefaultsRulesWrapper
public WithDefaultsRulesWrapper(Rules wrappedRules)
Base constructor.- Parameters:
wrappedRules
- the wrappedRules
implementation, not null- Throws:
java.lang.IllegalArgumentException
- whenwrappedRules
is null
-
-
Method Detail
-
getDigester
public Digester getDigester()
Gets digester using these Rules- Specified by:
getDigester
in interfaceRules
-
setDigester
public void setDigester(Digester digester)
Sets digeseter using these Rules- Specified by:
setDigester
in interfaceRules
- Parameters:
digester
- The newly associated Digester instance
-
getNamespaceURI
public java.lang.String getNamespaceURI()
Gets namespace to apply to Rule's added- Specified by:
getNamespaceURI
in interfaceRules
-
setNamespaceURI
public void setNamespaceURI(java.lang.String namespaceURI)
Sets namespace to apply to Rule's added subsequently- Specified by:
setNamespaceURI
in interfaceRules
- Parameters:
namespaceURI
- Namespace URI that must match on all subsequently added rules, ornull
for matching regardless of the current namespace URI
-
getDefaults
public java.util.List getDefaults()
Gets Rule's which will be fired when the wrapped implementation returns no matches
-
match
public java.util.List match(java.lang.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 theadd()
method.
-
match
public java.util.List match(java.lang.String namespaceURI, java.lang.String pattern)
Return list of rules matching given pattern. If wrapped implementation returns any matches return those. Otherwise, return default matches.
-
addDefault
public void addDefault(Rule rule)
Adds a rule to be fired when wrapped implementation returns no matches
-
-