Class PatternWithGroups

java.lang.Object
org.glassfish.tyrus.core.uri.internal.PatternWithGroups
Direct Known Subclasses:
PathPattern

public class PatternWithGroups extends Object
A pattern for matching a string against a regular expression and returning capturing group values for any capturing groups present in the expression.
Author:
Paul Sandoz, Gerard Davison (gerard.davison at oracle.com)
  • Field Details

    • EMPTY

      public static final PatternWithGroups EMPTY
      The empty pattern that matches the null or empty string.
  • Constructor Details

    • PatternWithGroups

      protected PatternWithGroups()
      Construct an empty pattern.
    • PatternWithGroups

      public PatternWithGroups(String regex) throws PatternSyntaxException
      Construct a new pattern.
      Parameters:
      regex - the regular expression. If the expression is null or an empty string then the pattern will only match a null or empty string.
      Throws:
      PatternSyntaxException - if the regular expression could not be compiled.
    • PatternWithGroups

      public PatternWithGroups(String regex, int[] groupIndexes) throws PatternSyntaxException
      Construct a new pattern.
      Parameters:
      regex - the regular expression. If the expression is null or an empty string then the pattern will only match a null or empty string.
      groupIndexes - the array of group indexes to capturing groups.
      Throws:
      PatternSyntaxException - if the regular expression could not be compiled.
    • PatternWithGroups

      public PatternWithGroups(Pattern regexPattern) throws IllegalArgumentException
      Construct a new pattern.
      Parameters:
      regexPattern - the regular expression pattern.
      Throws:
      IllegalArgumentException - if the regexPattern is null.
    • PatternWithGroups

      public PatternWithGroups(Pattern regexPattern, int[] groupIndexes) throws IllegalArgumentException
      Construct a new pattern.
      Parameters:
      regexPattern - the regular expression pattern.
      groupIndexes - the array of group indexes to capturing groups.
      Throws:
      IllegalArgumentException - if the regexPattern is null.
  • Method Details

    • getRegex

      public final String getRegex()
      Get the regular expression.
      Returns:
      the regular expression.
    • getGroupIndexes

      public final int[] getGroupIndexes()
      Get the group indexes to capturing groups.

      Any nested capturing groups will be ignored and the the group index will refer to the top-level capturing groups associated with the templates variables.

      Returns:
      the group indexes to capturing groups.
    • match

      public final MatchResult match(CharSequence cs)
      Match against the pattern.
      Parameters:
      cs - the char sequence to match against the template.
      Returns:
      the match result, otherwise null if no match occurs.
    • match

      public final boolean match(CharSequence cs, List<String> groupValues) throws IllegalArgumentException
      Match against the pattern.

      If a matched then the capturing group values (if any) will be added to a list passed in as parameter.

      Parameters:
      cs - the char sequence to match against the template.
      groupValues - the list to add the values of a pattern's capturing groups if matching is successful. The values are added in the same order as the pattern's capturing groups. The list is cleared before values are added.
      Returns:
      true if the char sequence matches the pattern, otherwise false.
      Throws:
      IllegalArgumentException - if the group values is null.
    • match

      public final boolean match(CharSequence cs, List<String> groupNames, Map<String,String> groupValues) throws IllegalArgumentException
      Match against the pattern.

      If a matched then the capturing group values (if any) will be added to a list passed in as parameter.

      Parameters:
      cs - the char sequence to match against the template.
      groupNames - the list names associated with a pattern's capturing groups. The names MUST be in the same order as the pattern's capturing groups and the size MUST be equal to or less than the number of capturing groups.
      groupValues - the map to add the values of a pattern's capturing groups if matching is successful. A values is put into the map using the group name associated with the capturing group. The map is cleared before values are added.
      Returns:
      true if the matches the pattern, otherwise false.
      Throws:
      IllegalArgumentException - if group values is null.
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public final String toString()
      Overrides:
      toString in class Object