public class URI extends Object
Modifier and Type | Field and Description |
---|---|
protected static String |
ADDITIONAL_REFERENCE_CHARS_ |
protected String |
authority_
The authority component of an URI.
|
protected static String |
AUTHORITY_CHARS_
Contains all characters which are allowed for the authority component of an
URI.
|
protected String |
path_
The path component of an URI.
|
protected static String |
PATH_CHARS_
Contains all characters which are allowed for the path component of an URI.
|
protected String |
query_
The query component of an URI.
|
protected static String |
QUERY_CHARS_
Contains all characters which are allowed for the query component of an
URI.
|
protected String |
reference_
The reference component of an URI.
|
protected static String |
REFERENCE_CHARS_
Contains all characters which are allowed for the reference component of an
URI.S_
|
protected static String |
RESERVED_
Contains all reserved characters which can be used for an URI.
|
protected String |
scheme_
The scheme component of an URI.
|
protected static String |
SCHEME_CHARS_
Contains all characters which are allowed for the scheme component of an
URI.
|
protected static String |
UNRESERVED_
Contains all unreserved characters which can be used for an URI.
|
Constructor and Description |
---|
URI(String uri)
Parses the given URI string and extracts its five components.
|
URI(String scheme,
String authority,
String path,
String query,
String reference)
Constructs a URI from its five components.
|
Modifier and Type | Method and Description |
---|---|
static String |
absolutizePath(String basePath,
String candidatePath,
char separatorChar)
Absolutizes a specified candidate path using a specified base path and a
specified separator character.
|
static URI |
absolutizeURI(URI base,
URI candidate)
Absolutizes a specified candidate URI using a specified base URI according
to RFC 2396, section 5.2.
|
boolean |
equals(Object obj) |
protected String |
escape(String original,
String allowedChars)
Escapes all non-ASCII characters and all forbidden ASCII characters in the
specified string.
|
String |
getAuthority()
Gets the authority component of the URI.
|
String |
getAuthorityUnescaped()
Gets the authority component of the URI in its unescaped (unicode) version.
|
String |
getPath()
Gets the path component of the URI.
|
String |
getPathUnescaped()
Gets the path component of the URI in its unescaped (unicode) version.
|
String |
getQuery()
Gets the query component of the URI.
|
String |
getQueryUnescaped()
Gets the query component of the URI in its unescaped (unicode) version.
|
String |
getReference()
Gets the reference component of the URI.
|
String |
getReferenceUnescaped()
Gets the reference component of the URI in its unescaped (unicode) version.
|
String |
getScheme()
Gets the scheme component of the URI.
|
String |
getSchemeUnescaped()
Gets the scheme component of the URI in its unescaped (unicode) version.
|
String |
getURIWithoutReference()
Provides the string representation of the URI, excluding the reference
part.
|
int |
hashCode() |
boolean |
isAbsolute()
Tests if the URI is absolute.
|
boolean |
isEmpty()
Checks if the URI is empty.
|
boolean |
isReference()
Checks if the URI is reference-only.
|
boolean |
isSameDocument()
Checks if the URI is same-document.
|
URI |
joinUriReference(URI r)
Deprecated.
Experimental.
|
protected String |
parseComponent(String uri,
int fromIndex,
String allowedChars)
Gets the longest possible substring, containing only the specified allowed
characters, and starting at the specified position of the candidate string.
|
static void |
setAdditionalFragmentChars(String s)
|
String |
toString()
Provides the sString representation of the URI.
|
String |
toUnescapedString() |
protected String |
unescape(String escaped)
Unescapes the provided string.
|
protected static final String UNRESERVED_
protected static final String RESERVED_
protected static final String SCHEME_CHARS_
protected static final String AUTHORITY_CHARS_
protected static final String PATH_CHARS_
protected static final String QUERY_CHARS_
protected static final String REFERENCE_CHARS_
protected static String ADDITIONAL_REFERENCE_CHARS_
protected String scheme_
protected String authority_
protected String path_
protected String query_
protected String reference_
public URI(String scheme, String authority, String path, String query, String reference)
To construct a empty URI, all components must equal null
,
except path, which must be an empty String.
To construct a reference-only URI, all components must equal
null
, except path, which must be an empty String, and
reference, which must at least be an empty String.
Please note, that all parameters are considered to contain no escape
sequences (%XX
). For example, an invocation
(new URI("file", null, "a%20filename.txt", null, null)).toString()
would result in a string value of file:a%2520filename.txt
.
scheme
- The URI scheme component.authority
- The URI authority component.path
- The URI path component.query
- The URI query component.reference
- The URI reference component.public URI(String uri) throws URIException
uri
- A string representing an URI according to RFC 2396. Must not be
null
.URIException
- if a parsing error occurs.public static void setAdditionalFragmentChars(String s)
URI
fragment
(aka. reference) should
start with a '#' sign and square brackets '[',']' should be percent
encoded. If you feel the specs are in error with this you can use
URI.setAdditionalFragmentChars("[]")
. To allow unescaped square brackets
'[',']' in the fragment. Discussion on RFC 2396 + RFC 2732 vs. RFC 3986.s
- A String
of user defined characters which are to be
additionally allowed in the fragment of a URI.public static URI absolutizeURI(URI base, URI candidate) throws URIException
base
- The base URI. Must not be null
.candidate
- The candidate URI. Must not be null
.URIException
- if the candidate URI cannot be absolutized with the specified
base URI.public static String absolutizePath(String basePath, String candidatePath, char separatorChar) throws URIException
basePath
- The base path used for making the candidate path absolute. Must not
be null
.candidatePath
- The candidate path to be made absolute. Must not be
null
.separatorChar
- The character employed for separating path segments.URIException
- if the specified candidate path cannot be absolutized using the
specified base path.public String getURIWithoutReference()
public String toString()
public String toUnescapedString()
public boolean isEmpty()
true
if the URI is empty, false
otherwise.public boolean isReference()
#aRef
is
reference-only, but
http://anywhere.com/aDocument.html#aRef
is not reference-only, but
it has a reference.true
if the URI is reference-only, false
otherwise.public boolean isSameDocument()
true
if the URI is same-document, false
otherwise.public String getScheme()
null
if it does not
exist.public String getSchemeUnescaped()
null
if it does not
exist.public String getAuthority()
null
if it does not
exist.public String getAuthorityUnescaped()
null
if it does not
exist.public String getPath()
null
if it does not exist.public String getPathUnescaped()
null
if it does not exist.public String getQuery()
null
if it does not
exist.public String getQueryUnescaped()
null
if it does not
exist.public String getReference()
null
if it does not
exist.public String getReferenceUnescaped()
null
if it does not
exist.public boolean isAbsolute()
true
, if the URI is absolute, false
otherwise.protected String escape(String original, String allowedChars)
�
is transformed into the byte
sequence 0xC3 0xA4
. Therefore the corresponding representation
as escaped URI characters is %c3%a4
.original
- The string which characters are perhaps to be escaped. Must not be
null
.allowedChars
- String containing all allowed ASCII characters which should not be
escaped. Must not be null
.protected String unescape(String escaped)
(%xy)*
are replaced with its corresponding unicode characters. For instance,
%C3%B6
is replaced with unicode character 0xF6
(character �
).escaped
- The string to be escaped.protected String parseComponent(String uri, int fromIndex, String allowedChars) throws URIException
uri
- The string containing the requested substring. Must not be
null
.fromIndex
- The start position of the substring. Must match the interval
[0, candidate.length()]
.allowedChars
- A string containing all allowed characters for the substring. Must
not be
null
.URIException
- if an invalid URI is givenpublic URI joinUriReference(URI r)
r
- the URI reference to be joined to this URI.URI
© 2002-2005 IAIK, © 2004, 2006 - 2019 Stiftung SIC