Package org.apache.tomcat.util.buf

## Class UriUtil

- java.lang.Object
- - org.apache.tomcat.util.buf.UriUtil

-     public final class UriUtil
      extends Object

  Utility class for working with URIs and URLs.

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static URL` | `buildJarSafeUrl​(File file)` |
    `static URL` | `buildJarUrl​(File jarFile)` |
    `static URL` | `buildJarUrl​(File jarFile, String entryPath)` |
    `static URL` | `buildJarUrl​(String fileUrlString)` |
    `static URL` | `buildJarUrl​(String fileUrlString, String entryPath)` |
    `static String` | `getWarSeparator()` |
    `static boolean` | `hasScheme​(CharSequence uri)` | Determine if a URI string has a `scheme` component.
    `static boolean` | `isAbsoluteURI​(String path)` | Does the provided path start with `file:/` or `<protocol>://`.
    `static URI` | `resolve​(URI base, String target)` | Replicates the behaviour of `URI.resolve(String)` and adds support for URIs of the form `jar:file:/...` .
    `static URL` | `warToJar​(URL warUrl)` | Convert a URL of the form `war:file:...` to `jar:file:...`.

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

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

- - ### Method Detail

    - #### hasScheme

          public static boolean hasScheme​(CharSequence uri)

      Determine if a URI string has a `scheme` component.
      Parameters:
        `uri` - The URI to test
      Returns:
        `true` if a scheme is present, otherwise {code @false}

    - #### buildJarUrl

          public static URL buildJarUrl​(File jarFile)
                                 throws MalformedURLException

      Throws:
        `MalformedURLException`

    - #### buildJarUrl

          public static URL buildJarUrl​(File jarFile,
                                        String entryPath)
                                 throws MalformedURLException

      Throws:
        `MalformedURLException`

    - #### buildJarUrl

          public static URL buildJarUrl​(String fileUrlString)
                                 throws MalformedURLException

      Throws:
        `MalformedURLException`

    - #### buildJarUrl

          public static URL buildJarUrl​(String fileUrlString,
                                        String entryPath)
                                 throws MalformedURLException

      Throws:
        `MalformedURLException`

    - #### buildJarSafeUrl

          public static URL buildJarSafeUrl​(File file)
                                     throws MalformedURLException

      Throws:
        `MalformedURLException`

    - #### warToJar

          public static URL warToJar​(URL warUrl)
                              throws MalformedURLException

      Convert a URL of the form `war:file:...` to `jar:file:...`.
      Parameters:
        `warUrl` - The WAR URL to convert
      Returns:
        The equivalent JAR URL
      Throws:
        `MalformedURLException` - If the conversion fails

    - #### getWarSeparator

          public static String getWarSeparator()

    - #### isAbsoluteURI

          public static boolean isAbsoluteURI​(String path)

      Does the provided path start with `file:/` or `<protocol>://`.
      Parameters:
        `path` - The path to test
      Returns:
        `true` if the supplied path starts with once of the recognised sequences.

    - #### resolve

          public static URI resolve​(URI base,
                                    String target)
                             throws MalformedURLException,
                                    URISyntaxException

      Replicates the behaviour of `URI.resolve(String)` and adds support for URIs of the form `jar:file:/...` .
      Parameters:
        `base` - The base URI to resolve against
        `target` - The path to resolve
      Returns:
        The resulting URI as per `URI.resolve(String)`
      Throws:
        `MalformedURLException` - If the base URI cannot be converted to a URL
        `URISyntaxException` - If the resulting URL cannot be converted to a URI