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
`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