Class RegexRules

  • All Implemented Interfaces:
    Rules

    public class RegexRules
    extends AbstractRulesImpl

    Rules implementation that uses regular expression matching for paths.

    The regex implementation is pluggable, allowing different strategies to be used. The basic way that this class work does not vary. All patterns are tested to see if they match the path using the regex matcher. All those that do are return in the order which the rules were added.

    Since:
    1.5
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  RegexRules.RegisteredRule
      Used to associate rules with paths in the rules list
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private RegexMatcher matcher
      The regex strategy used by this RegexRules
      private java.util.ArrayList registeredRules
      All registered Rule's
    • Constructor Summary

      Constructors 
      Constructor Description
      RegexRules​(RegexMatcher matcher)
      Construct sets the Regex matching strategy.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Clear all existing Rule instance registrations.
      RegexMatcher getRegexMatcher()
      Gets the current regex matching strategy.
      java.util.List match​(java.lang.String namespaceURI, java.lang.String pattern)
      Finds matching rules by using current regex matching strategy.
      protected void registerRule​(java.lang.String pattern, Rule rule)
      Register a new Rule instance matching the specified pattern.
      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 setRegexMatcher​(RegexMatcher matcher)
      Sets the current regex matching strategy.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • registeredRules

        private java.util.ArrayList registeredRules
        All registered Rule's
      • matcher

        private RegexMatcher matcher
        The regex strategy used by this RegexRules
    • Constructor Detail

      • RegexRules

        public RegexRules​(RegexMatcher matcher)
        Construct sets the Regex matching strategy.
        Parameters:
        matcher - the regex strategy to be used, not null
        Throws:
        java.lang.IllegalArgumentException - if the strategy is null
    • Method Detail

      • getRegexMatcher

        public RegexMatcher getRegexMatcher()
        Gets the current regex matching strategy.
      • setRegexMatcher

        public void setRegexMatcher​(RegexMatcher matcher)
        Sets the current regex matching strategy.
        Parameters:
        matcher - use this RegexMatcher, not null
        Throws:
        java.lang.IllegalArgumentException - if the strategy is null
      • registerRule

        protected void registerRule​(java.lang.String pattern,
                                    Rule rule)
        Register a new Rule instance matching the specified pattern.
        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.
        Specified by:
        clear in interface Rules
        Specified by:
        clear in class AbstractRulesImpl
      • match

        public java.util.List match​(java.lang.String namespaceURI,
                                    java.lang.String pattern)
        Finds matching rules by using current regex matching strategy. The rule associated with each path that matches is added to the list of matches. The order of matching rules is the same order that they were added.
        Specified by:
        match in interface Rules
        Specified by:
        match in class AbstractRulesImpl
        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 list of matching Rule's
      • 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
        Specified by:
        rules in class AbstractRulesImpl