## 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
`protected java.util.HashMap` `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.lang.String` `namespaceURI` The namespace URI for which subsequently added `Rule` objects are relevant, or `null` for matching independent of namespaces.
`protected java.util.ArrayList` `rules` The set of registered Rule instances, in the order that they were originally registered.

Constructor Summary
`RulesBase()`

Method Summary
`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.
`java.lang.String` `getNamespaceURI()` Return the namespace URI that will be applied to all subsequently added `Rule` objects.
`protected java.util.List` `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` `match(java.lang.String pattern)` Deprecated. Call match(namespaceURI,pattern) instead.
`java.util.List` `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` `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.
`void` `setNamespaceURI(java.lang.String namespaceURI)` Set the namespace URI that will be applied to all subsequently added `Rule` objects.

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 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 orginally registered.

### digester

    protected Digester digester

  The Digester instance with which this Rules instance is associated.

### namespaceURI

    protected java.lang.String namespaceURI

  The namespace URI for which subsequently added `Rule` objects are relevant, or `null` for matching independent of namespaces.

### rules

    protected java.util.ArrayList 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`

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

### getNamespaceURI

    public java.lang.String getNamespaceURI()

  Return the namespace URI that will be applied to all subsequently added `Rule` objects.

  Specified by:
    `getNamespaceURI` in interface `Rules`

### setNamespaceURI

    public void setNamespaceURI(java.lang.String namespaceURI)

  Set the namespace URI that will be applied to all subsequently added `Rule` objects.

  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

### 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 match(java.lang.String pattern)

  Deprecated. Call match(namespaceURI,pattern) instead.

  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 java.util.List 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

### rules

    public java.util.List 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`

### lookup

    protected java.util.List 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

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