org.apache.xml.utils
public class URI extends Object implements Serializable
Parsing of a URI specification is done according to the URI
syntax described in RFC 2396
For URIs that do not follow the "generic URI" syntax (e.g. mailto),
the entire scheme-specific part is treated as the "path" portion
of the URI.
Note that, unlike the java.net.URL class, this class does not provide
any built-in network access functionality nor does it provide any
scheme-specific functionality (for example, it does not know a
default port for a specific scheme). Rather, it only knows the
grammar and basic set of operations that can be applied to a URI.
Nested Class Summary | |
---|---|
static class | URI.MalformedURIException
MalformedURIExceptions are thrown in the process of building a URI
or setting fields on a URI when an operation would result in an
invalid URI specification.
|
Constructor Summary | |
---|---|
URI()
Construct a new and uninitialized URI. | |
URI(URI p_other)
Construct a new URI from another URI. | |
URI(String p_uriSpec)
Construct a new URI from a URI specification string. | |
URI(URI p_base, String p_uriSpec)
Construct a new URI from a base URI and a URI specification string.
| |
URI(String p_scheme, String p_schemeSpecificPart)
Construct a new URI that does not follow the generic URI syntax.
| |
URI(String p_scheme, String p_host, String p_path, String p_queryString, String p_fragment)
Construct a new URI that follows the generic URI syntax from its
component parts. | |
URI(String p_scheme, String p_userinfo, String p_host, int p_port, String p_path, String p_queryString, String p_fragment)
Construct a new URI that follows the generic URI syntax from its
component parts. |
Method Summary | |
---|---|
void | appendPath(String p_addToPath)
Append to the end of the path of this URI. |
boolean | equals(Object p_test)
Determines if the passed-in Object is equivalent to this URI.
|
String | getFragment()
Get the fragment for this URI.
|
String | getHost()
Get the host for this URI.
|
String | getPath(boolean p_includeQueryString, boolean p_includeFragment)
Get the path for this URI (optionally with the query string and
fragment).
|
String | getPath()
Get the path for this URI. |
int | getPort()
Get the port for this URI.
|
String | getQueryString()
Get the query string for this URI.
|
String | getScheme()
Get the scheme for this URI.
|
String | getSchemeSpecificPart()
Get the scheme-specific part for this URI (everything following the
scheme and the first colon). |
String | getUserinfo()
Get the userinfo for this URI.
|
static boolean | isConformantSchemeName(String p_scheme)
Determine whether a scheme conforms to the rules for a scheme name.
|
boolean | isGenericURI()
Get the indicator as to whether this URI uses the "generic URI"
syntax.
|
static boolean | isWellFormedAddress(String p_address)
Determine whether a string is syntactically capable of representing
a valid IPv4 address or the domain name of a network host. |
void | setFragment(String p_fragment)
Set the fragment for this URI. |
void | setHost(String p_host)
Set the host for this URI. |
void | setPath(String p_path)
Set the path for this URI. |
void | setPort(int p_port)
Set the port for this URI. |
void | setQueryString(String p_queryString)
Set the query string for this URI. |
void | setScheme(String p_scheme)
Set the scheme for this URI. |
void | setUserinfo(String p_userinfo)
Set the userinfo for this URI. |
String | toString()
Get the URI as a string specification. |
Parameters: p_other the URI to copy (cannot be null)
Parameters: p_uriSpec the URI specification string (cannot be null or empty)
Throws: MalformedURIException if p_uriSpec violates any syntax rules
Parameters: p_base the base URI (cannot be null if p_uriSpec is null or empty) p_uriSpec the URI specification string (cannot be null or empty if p_base is null)
Throws: MalformedURIException if p_uriSpec violates any syntax rules
Parameters: p_scheme the URI scheme (cannot be null or empty) p_schemeSpecificPart the scheme-specific part (cannot be null or empty)
Throws: MalformedURIException if p_scheme violates any syntax rules
Parameters: p_scheme the URI scheme (cannot be null or empty) p_host the hostname or IPv4 address for the URI p_path the URI path - if the path contains '?' or '#', then the query string and/or fragment will be set from the path; however, if the query and fragment are specified both in the path and as separate parameters, an exception is thrown p_queryString the URI query string (cannot be specified if path is null) p_fragment the URI fragment (cannot be specified if path is null)
Throws: MalformedURIException if any of the parameters violates syntax rules or semantic rules
Parameters: p_scheme the URI scheme (cannot be null or empty) p_userinfo the URI userinfo (cannot be specified if host is null) p_host the hostname or IPv4 address for the URI p_port the URI port (may be -1 for "unspecified"; cannot be specified if host is null) p_path the URI path - if the path contains '?' or '#', then the query string and/or fragment will be set from the path; however, if the query and fragment are specified both in the path and as separate parameters, an exception is thrown p_queryString the URI query string (cannot be specified if path is null) p_fragment the URI fragment (cannot be specified if path is null)
Throws: MalformedURIException if any of the parameters violates syntax rules or semantic rules
Parameters: p_addToPath the new segment to be added to the current path
Throws: MalformedURIException if p_addToPath contains syntax errors
Parameters: p_test the Object to test for equality.
Returns: true if p_test is a URI with all values equal to this URI, false otherwise
Returns: the fragment for this URI. Null is returned if there was no "#" in the URI spec, empty string if there was a "#" but no fragment following it.
Returns: the host for this URI (null if not specified).
Parameters: p_includeQueryString if true (and query string is not null), then a "?" followed by the query string will be appended p_includeFragment if true (and fragment is not null), then a "#" followed by the fragment will be appended
Returns: the path for this URI possibly including the query string and fragment
Returns: the path for this URI.
Returns: the port for this URI (-1 if not specified).
Returns: the query string for this URI. Null is returned if there was no "?" in the URI spec, empty string if there was a "?" but no query string following it.
Returns: the scheme for this URI
Returns: the scheme-specific part for this URI
Returns: the userinfo for this URI (null if not specified).
Parameters: p_scheme The sheme name to check
Returns: true if the scheme is conformant, false otherwise
Returns: true if this URI uses the "generic URI" syntax, false otherwise
Parameters: p_address The address string to check
Returns: true if the string is a syntactically valid IPv4 address or hostname
Parameters: p_fragment the fragment for this URI
Throws: MalformedURIException if p_fragment is not null and this URI does not conform to the generic URI syntax or if the path is null
Parameters: p_host the host for this URI
Throws: MalformedURIException if p_host is not a valid IP address or DNS hostname.
Parameters: p_path the path for this URI (may be null)
Throws: MalformedURIException if p_path contains invalid characters
Parameters: p_port the port number for this URI
Throws: MalformedURIException if p_port is not -1 and not a valid port number
Parameters: p_queryString the query string for this URI
Throws: MalformedURIException if p_queryString is not null and this URI does not conform to the generic URI syntax or if the path is null
Parameters: p_scheme the scheme for this URI (cannot be null)
Throws: MalformedURIException if p_scheme is not a conformant scheme name
Parameters: p_userinfo the userinfo for this URI
Throws: MalformedURIException if p_userinfo contains invalid characters
Returns: the URI string specification