Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.digester3
Class RulesBase

    java.lang.Object
      org.apache.commons.digester3.AbstractRulesImpl
          org.apache.commons.digester3.RulesBase

All Implemented Interfaces:
  Rules

Direct Known Subclasses:
  ExtendedBaseRules

    public class RulesBase

extends AbstractRulesImpl

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.

Note that wildcard patterns are ignored if an explicit match can be found (and when multiple wildcard patterns match, only the longest, ie most explicit, pattern is considered a match).

See the package documentation for package org.apache.commons.digester3 for more information.

Field Summary
`protected HashMap<String,List<Rule>>` | `cache` The set of registered Rule instances, keyed by the matching pattern.
`protected ArrayList<Rule>` | `rules` The set of registered Rule instances, in the order that they were originally registered.

Constructor Summary
`RulesBase()`

Method Summary
`void` | `clear()` Clear all existing Rule instance registrations.
`protected List<Rule>` | `lookup(String namespaceURI, String pattern)` Return a List of Rule instances for the specified pattern that also match the specified namespace URI (if any).
`List<Rule>` | `match(String namespaceURI, String pattern, String name, 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.
`protected void` | `registerRule(String pattern, Rule rule)` Register rule at given pattern.
`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 org.apache.commons.digester3.AbstractRulesImpl
`add, getDigester, getNamespaceURI, setNamespaceURI`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### cache

    protected HashMap<String,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 orginally registered.

### rules

    protected ArrayList<Rule> rules

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

Constructor Detail

### RulesBase

    public RulesBase()

Method Detail

### setDigester

    public void setDigester(Digester digester)

  Set the Digester instance with which this Rules instance is associated.

  Specified by:
    `setDigester` in interface `Rules`
  Overrides:
    `setDigester` in class `AbstractRulesImpl`
  Parameters:
    `digester` - The newly associated Digester instance

### registerRule

    protected void registerRule(String pattern,
                                Rule rule)

  Register rule at given pattern. The the Digester and namespaceURI properties of the given `Rule` can be assumed to have been set properly before this method is called.

  Specified by:
    `registerRule` in class `AbstractRulesImpl`
  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.

### match

    public List<Rule> match(String namespaceURI,
                            String pattern,
                            String name,
                            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 the `add()` method.

  Parameters:
    `namespaceURI` - Namespace URI for which to select matching rules, or `null` to match regardless of namespace URI
    `pattern` - Nesting pattern to be matched
    `name` - the local name if the parser is namespace aware, or just the element name otherwise
    `attributes` - The attribute list of the current matching element
  Returns:
    a List of all registered Rule instances that match the specified nesting pattern

### rules

    public 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.

  Returns:
    a List of all registered Rule instances

### lookup

    protected List<Rule> lookup(String namespaceURI,
                                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 List of Rule instances for the specified pattern that also match the specified namespace URI (if any)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.