org.apache.hc.core5.http.protocol

## Class UriPatternMatcher<T>

- java.lang.Object
- - org.apache.hc.core5.http.protocol.UriPatternMatcher<T>

- Type Parameters:
    `T` - The type of registered objects.
  All Implemented Interfaces:
    LookupRegistry<T>

      @Contract(threading=SAFE)
      public class UriPatternMatcher<T>
      extends Object
      implements LookupRegistry<T>

  Maintains a map of objects keyed by a request URI pattern.

  Patterns may have three formats:

  - `*`
  - `*<uri>`
  - `<uri>*`

  This class can be used to resolve an object matching a particular request URI.

  Since:
    4.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `UriPatternMatcher()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Set<Map.Entry<String,T>>` | `entrySet()` Returns a `Set` view of the mappings contained in this matcher.
    `T` | `lookup(String path)` Looks up an object matching the given request path.
    `protected boolean` | `matchUriRequestPattern(String pattern, String path)` Tests if the given request path matches the given pattern.
    `void` | `register(String pattern, T obj)` Registers the given object for URIs matching the given pattern.
    `String` | `toString()`
    `void` | `unregister(String pattern)` Removes registered object, if exists, for the given pattern.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### UriPatternMatcher

          public UriPatternMatcher()

  - ### Method Detail

    - #### entrySet

          public Set<Map.Entry<String,T>> entrySet()

      Returns a `Set` view of the mappings contained in this matcher.
      Returns:
        a set view of the mappings contained in this matcher.
      Since:
        4.4.9
      See Also:
        `Map.entrySet()`

    - #### register

          public void register(String pattern,
                      T obj)

      Registers the given object for URIs matching the given pattern.
      Specified by:
        `register` in interface `LookupRegistry<T>`
      Parameters:
        `pattern` - the pattern to register the handler for.
        `obj` - the object.

    - #### unregister

          public void unregister(String pattern)

      Removes registered object, if exists, for the given pattern.
      Specified by:
        `unregister` in interface `LookupRegistry<T>`
      Parameters:
        `pattern` - the pattern to unregister.

    - #### lookup

          public T lookup(String path)

      Looks up an object matching the given request path.
      Specified by:
        `lookup` in interface `LookupRegistry<T>`
      Parameters:
        `path` - the request path
      Returns:
        object or `null` if no match is found.

    - #### matchUriRequestPattern

          protected boolean matchUriRequestPattern(String pattern,
                                       String path)

      Tests if the given request path matches the given pattern.
      Parameters:
        `pattern` - the pattern
        `path` - the request path
      Returns:
        `true` if the request URI matches the pattern, `false` otherwise.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.