org.apache.tomcat.util.digester

## Class WithDefaultsRulesWrapper

- java.lang.Object
- - org.apache.tomcat.util.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

    Constructors
    Constructor and Description
    `WithDefaultsRulesWrapper(Rules wrappedRules)` Base constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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<Rule>` | `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<Rule>` | `match(String namespaceURI, String pattern)` Return list of rules matching given pattern.
    `List<Rule>` | `rules()` Gets all rules
    `void` | `setDigester(Digester digester)` Sets digester 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 digester 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<Rule> getDefaults()

      Gets Rule's which will be fired when the wrapped implementation returns no matches

    - #### 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

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.