Class UriPattern

java.lang.Object
com.yahoo.jdisc.application.UriPattern
All Implemented Interfaces:
Comparable<UriPattern>

public class UriPattern extends Object implements Comparable<UriPattern>

This class holds a regular expression designed so that it only matches certain URIs. The constructor of this class accepts a simplified pattern string, and turns that into something that can be used to quickly match against URIs. This class also implements Comparable in such a way that stricter patterns order before looser patterns.

Here are some examples of ordering:

  • http://host/path evaluated before *://host/path
  • http://host/path evaluated before http://*/path
  • http://a.host/path evaluated before http://*.host/path
  • http://*.host/path evaluated before http://host/path
  • http://host.a/path evaluated before http://host.*/path
  • http://host.*/path evaluated before http://host/path
  • http://host:80/path evaluated before http://host:*/path
  • http://host/path evaluated before http://host/*
  • http://host/path/* evaluated before http://host/path
Author:
Simon Thoresen Hult, bjorncs
  • Constructor Details

    • UriPattern

      public UriPattern(String uri)

      Creates a new instance of this class that represents the given pattern string, with a priority of 0. The input string must be on the form <scheme>://<host>[:<port>]<path>, where '*' can be used as a wildcard character at any position.

      Parameters:
      uri - The pattern to parse.
      Throws:
      IllegalArgumentException - If the pattern could not be parsed.
  • Method Details

    • match

      public UriPattern.Match match(URI uri)

      Attempts to match the given URI to this pattern. Note that only the scheme, host, port, and path components of the URI are used, and these must all be defined. Only absolute URIs are supported. Any user info, query or fragment part is ignored.

      Parameters:
      uri - The URI to match.
      Returns:
      A UriPattern.Match object describing the match found, or null if not found.
    • hashCode

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

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

      public String toString()
      Overrides:
      toString in class Object
    • compareTo

      public int compareTo(UriPattern rhs)
      Specified by:
      compareTo in interface Comparable<UriPattern>