Package org.apache.commons.digester3
Class WithDefaultsRulesWrapper
- java.lang.Object
-
- org.apache.commons.digester3.WithDefaultsRulesWrapper
-
- All Implemented Interfaces:
Rules
public class WithDefaultsRulesWrapper extends java.lang.Object implements Rules
RulesDecorator that returns default rules when no matches are returned by the wrapped implementation.This allows default
Ruleinstances to be added to any existingRulesimplementation. These defaultRuleinstances 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.WithDefaultsRulesWrapperfollows the Decorator pattern.- Since:
- 1.6
-
-
Constructor Summary
Constructors Constructor Description WithDefaultsRulesWrapper(Rules wrappedRules)Base constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(java.lang.String pattern, Rule rule)Register a new Rule instance matching the specified pattern.voidaddDefault(Rule rule)Adds a rule to be fired when wrapped implementation returns no matchesvoidclear()Clear all existing Rule instance registrations.java.util.List<Rule>getDefaults()Gets Rule's which will be fired when the wrapped implementation returns no matchesDigestergetDigester()Return the Digester instance with which this Rules instance is associated.java.lang.StringgetNamespaceURI()Return the namespace URI that will be applied to all subsequently addedRuleobjects.java.util.List<Rule>match(java.lang.String namespaceURI, java.lang.String pattern, java.lang.String name, org.xml.sax.Attributes attributes)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<Rule>rules()Return a List of all registered Rule instances, or a zero-length List if there are no registered Rule instances.voidsetDigester(Digester digester)Set the Digester instance with which this Rules instance is associated.voidsetNamespaceURI(java.lang.String namespaceURI)Set the namespace URI that will be applied to all subsequently addedRuleobjects.
-
-
-
Constructor Detail
-
WithDefaultsRulesWrapper
public WithDefaultsRulesWrapper(Rules wrappedRules)
Base constructor.- Parameters:
wrappedRules- the wrappedRulesimplementation, not null
-
-
Method Detail
-
getDigester
public Digester getDigester()
Return the Digester instance with which this Rules instance is associated.- Specified by:
getDigesterin interfaceRules- Returns:
- the Digester instance with which this Rules instance is associated
-
setDigester
public void setDigester(Digester digester)
Set the Digester instance with which this Rules instance is associated.- Specified by:
setDigesterin interfaceRules- Parameters:
digester- The newly associated Digester instance
-
getNamespaceURI
public java.lang.String getNamespaceURI()
Return the namespace URI that will be applied to all subsequently addedRuleobjects.- Specified by:
getNamespaceURIin interfaceRules- Returns:
- the namespace URI that will be applied to all subsequently added
Ruleobjects.
-
setNamespaceURI
public void setNamespaceURI(java.lang.String namespaceURI)
Set the namespace URI that will be applied to all subsequently addedRuleobjects.- Specified by:
setNamespaceURIin interfaceRules- Parameters:
namespaceURI- Namespace URI that must match on all subsequently added rules, ornullfor matching regardless of the current namespace URI
-
getDefaults
public java.util.List<Rule> getDefaults()
Gets Rule's which will be fired when the wrapped implementation returns no matches- Returns:
- Rule's which will be fired when the wrapped implementation returns no matches
-
match
public java.util.List<Rule> match(java.lang.String namespaceURI, java.lang.String pattern, java.lang.String name, org.xml.sax.Attributes attributes)
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.- Specified by:
matchin interfaceRules- Parameters:
namespaceURI- Namespace URI for which to select matching rules, ornullto match regardless of namespace URIpattern- Nesting pattern to be matchedname- the local name if the parser is namespace aware, or just the element name otherwiseattributes- The attribute list of the current matching element- Returns:
- a List of all registered Rule instances that match the specified nesting pattern
-
addDefault
public void addDefault(Rule rule)
Adds a rule to be fired when wrapped implementation returns no matches- Parameters:
rule- a Rule to be fired when wrapped implementation returns no matches
-
rules
public java.util.List<Rule> 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 theadd()method.
-
clear
public void clear()
Clear all existing Rule instance registrations.
-
-