Class RulesBase

  • All Implemented Interfaces:
    Rules
    Direct Known Subclasses:
    ExtendedBaseRules

    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.

    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.digester for more information.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      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

      Constructors 
      Constructor Description
      RulesBase()  
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method 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.
      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