net.fortuna.ical4j.util

## Class Uris

- java.lang.Object
- - net.fortuna.ical4j.util.Uris

    public final class Uris
    extends Object

$Id$ Created on 11/09/2005 Utility methods for working with URIs.

Author:
  Ben Fortuna

### Field Summary

Fields
`static String` `INVALID_SCHEME` URI Scheme used when relaxed parsing is enabled and the given input stream lead to an invalid URI.

### Method Summary

Methods
`static URI` `create(String s)` Attempts to create a URI instance and will optionally swallow any resulting URISyntaxException depending on configured `CompatibilityHints`.
`static String` `decode(String s)` Decodes the specified URI string using the UTF-8 charset.
`static String` `encode(String s)` Encodes the specified URI string using the UTF-8 charset.

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

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

### Field Detail

#### INVALID_SCHEME

    public static final String INVALID_SCHEME

URI Scheme used when relaxed parsing is enabled and the given input stream lead to an invalid URI.

See Also:
  Constant Field Values

### Method Detail

#### encode

    public static String encode(String s)

Encodes the specified URI string using the UTF-8 charset. In the event that an exception is thrown, the specifed URI string is returned unmodified.

Parameters:
  `s` - a URI string
Returns:
  an encoded URI string

#### decode

    public static String decode(String s)

Decodes the specified URI string using the UTF-8 charset. In the event that an exception is thrown, the specifed URI string is returned unmodified.

Parameters:
  `s` - a URI string
Returns:
  an encoded URI string

#### create

    public static URI create(String s)
                      throws URISyntaxException

Attempts to create a URI instance and will optionally swallow any resulting URISyntaxException depending on configured `CompatibilityHints`. Will also automatically attempt encoding of the string representation for greater compatibility.

When relaxed parsing is enabled and if the string representation is not valid, a second URI creation attempt is made by extracting the scheme from the scheme specific part and URI encoding that later part. For example, "mailto: joe smith@example.com" becomes "mailto:joe%20smith@example.com".

If the second attempts also leads to a `URISyntaxException`, an opaque URI is constructed with a scheme of `Uris.INVALID_SCHEME` and a value corresponding to the initial representation.

Parameters:
  `s` - a string representation of a URI.
Returns:
  a URI instance, which may not correspond to the URI string if a valid URI string is not specified and relaxed parsing is enabled.
Throws:
  `URISyntaxException` - if a valid URI string is not specified and relaxed parsing is disabled