RulesBase (Apache Tomcat 9.0.22 API Documentation)

org.apache.tomcat.util.digester

## Class RulesBase

- java.lang.Object
- - org.apache.tomcat.util.digester.RulesBase

- All Implemented Interfaces:
    Rules

      public class RulesBase
      extends java.lang.Object
      implements Rules

  Default implementation of the `Rules` interface that supports the standard rule matching behavior. This class can also be used as a base class for specialized `Rules` implementations.

  The matching policies implemented by this class support two different types of pattern matching rules:

  - Exact Match - A pattern "a/b/c" exactly matches a `<c>` element, nested inside a `<b>` element, which is nested inside an `<a>` element.
  - Tail Match - A pattern "*/a/b" matches a `<b>` element, nested inside an `<a>` element, no matter how deeply the pair is nested.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.HashMap<java.lang.String,java.util.List<Rule>>` | `cache` The set of registered Rule instances, keyed by the matching pattern.
    `protected Digester` | `digester` The Digester instance with which this Rules instance is associated.
    `protected java.util.ArrayList<Rule>` | `rules` The set of registered Rule instances, in the order that they were originally registered.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RulesBase()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(java.lang.String pattern, Rule rule)` Register a new Rule instance matching the specified pattern.
    `void` | `clear()` Clear all existing Rule instance registrations.
    `Digester` | `getDigester()` Return the Digester instance with which this Rules instance is associated.
    `protected java.util.List<Rule>` | `lookup(java.lang.String namespaceURI, java.lang.String pattern)` Return a List of Rule instances for the specified pattern that also match the specified namespace URI (if any).
    `java.util.List<Rule>` | `match(java.lang.String namespaceURI, 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<Rule>` | `rules()` Return a List of all registered Rule instances, or a zero-length List if there are no registered Rule instances.
    `void` | `setDigester(Digester digester)` Set the Digester instance with which this Rules instance is associated.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### cache

          protected java.util.HashMap<java.lang.String,java.util.List<Rule>> cache

      The set of registered Rule instances, keyed by the matching pattern. Each value is a List containing the Rules for that pattern, in the order that they were originally registered.

    - #### digester

          protected Digester digester

      The Digester instance with which this Rules instance is associated.

    - #### rules

          protected java.util.ArrayList<Rule> rules

      The set of registered Rule instances, in the order that they were originally registered.

  - ### Constructor Detail

    - #### RulesBase

          public RulesBase()

  - ### Method Detail

    - #### getDigester

          public Digester getDigester()

      Return the Digester instance with which this Rules instance is associated.
      Specified by:
        `getDigester` in interface `Rules`
      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:
        `setDigester` in interface `Rules`
      Parameters:
        `digester` - The newly associated Digester instance

    - #### add

          public void add(java.lang.String pattern,
                          Rule rule)

      Register a new Rule instance matching the specified pattern.
      Specified by:
        `add` in interface `Rules`
      Parameters:
        `pattern` - Nesting pattern to be matched for this Rule
        `rule` - Rule instance to be registered

    - #### clear

          public void clear()

      Clear all existing Rule instance registrations.
      Specified by:
        `clear` in interface `Rules`

    - #### match

          public java.util.List<Rule> match(java.lang.String namespaceURI,
                                            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. 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:
        `namespaceURI` - Namespace URI for which to select matching rules, or `null` to match regardless of namespace URI
        `pattern` - Nesting pattern to be matched
      Returns:
        a rules list

    - #### 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 the `add()` method.
      Specified by:
        `rules` in interface `Rules`
      Returns:
        a rules list

    - #### lookup

          protected java.util.List<Rule> lookup(java.lang.String namespaceURI,
                                                java.lang.String pattern)

      Return a List of Rule instances for the specified pattern that also match the specified namespace URI (if any). If there are no such rules, return `null`.
      Parameters:
        `namespaceURI` - Namespace URI to match, or `null` to select matching rules regardless of namespace URI
        `pattern` - Pattern to be matched
      Returns:
        a rules list

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