Class WithDefaultsRulesWrapper

java.lang.Object
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 Details

  • Method Details

    • 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

      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<Rule> getDefaults()
      Gets Rule's which will be fired when the wrapped implementation returns no matches
    • match

      public List<Rule> 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<Rule> 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<Rule> 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