Class Uri
- java.lang.Object
-
- com.jogamp.common.net.Uri
-
public class Uri extends Object
This class implements an immutable Uri as defined by RFC 2396.Character encoding is employed as defined by RFC 3986, see RFC 3986 section 2.1, while multibyte unicode characters are preserved in encoded parts.
1 [scheme:]scheme-specific-part[#fragment] 2 [scheme:][//authority]path[?query][#fragment] 3 [scheme:][//[user-info@]host[:port]]path[?query][#fragment] scheme-specific-part: [//authority]path[?query] authority: [user-info@]host[:port]RFC 3986 section 2.2 Reserved Characters (January 2005)
!*'();:@&=+$,/?#[]RFC 3986 section 2.3 Unreserved Characters (January 2005)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~Other characters in a Uri must be percent encoded.
- Since:
- 2.2.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classUri.ASCIIEncodedstatic classUri.EncodedImmutable RFC3986 encoded string.
-
Field Summary
Fields Modifier and Type Field Description booleanabsoluteIndicating whether this Uri is absolute, i.e.Uri.EncodedauthorityEncodedauthoritypart ofscheme-specific-part,nullif undefined.static StringAUTHORITY_LEGALValid charset for RFC 2396authority, additional to legalalphanumcharacters.static StringFILE_SCHEME"file"static StringFRAG_LEGALValid charset for RFC 2396fragment, additional to legalalphanumcharacters.Uri.EncodedfragmentEncodedfragment,nullif undefined.static charFRAGMENT_SEPARATOR35booleanhasAuthorityIndicating whetherauthoritypart is defined or not.Uri.EncodedhostEncodedhostpart ofauthorityandscheme-specific-part,nullif undefined.static StringHTTP_SCHEME"http"static StringHTTPS_SCHEME"https"Uri.EncodedinputEncoded input string used at construction, nevernull.static StringJAR_SCHEME"jar"static charJAR_SCHEME_SEPARATORA JAR sub-protocol is separated from the JAR entry w/ this separator 33.booleanopaqueIndicating whether this Uri is opaque, i.e.Uri.EncodedpathEncodedpathpart ofscheme-specific-part, nevernull.static StringPATH_LEGALValid charset for RFC 2396path, additional to legalalphanumcharacters.intportEncodedportpart ofauthorityandscheme-specific-part,-1if undefined.Uri.EncodedqueryEncodedquerypart ofscheme-specific-part,nullif undefined.static StringQUERY_LEGALValid charset for RFC 2396query, additional to legalalphanumcharacters.static charQUERY_SEPARATOR63static StringRESERVEDRFC 3986 section 2.2 Reserved Characters (January 2005)static StringRESERVED_2Uri.EncodedschemeEncodedscheme,nullif undefined.static charSCHEME_SEPARATOR58Uri.EncodedschemeSpecificPartEncodedscheme-specific-part, nevernull.static StringSSP_LEGALValid charset for RFC 2396scheme-specific-part, additional to legalalphanumcharacters.static StringUNRESERVEDRFC 3986 section 2.3 Unreserved Characters (January 2005)Uri.EncodeduserInfoEncodeduserinfopart ofauthorityandscheme-specific-part,nullif undefined.static StringUSERINFO_LEGALValid charset for RFC 2396authority'suser-info, additional to legalalphanumcharacters.
-
Constructor Summary
Constructors Constructor Description Uri(Uri.Encoded uri)Creates a new Uri instance according to the given encoded stringuri.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Uricast(String encodedUri)Casts the given encoded String to anew Encoded instanceused to create the resulting Uri instance viaUri(Encoded).Uriconcat(Uri.Encoded suffix)Concatenates the given encoded string to theencoded uriof this instance and returnsa new Uri instancewith the result.static Uricreate(Uri.Encoded scheme, Uri.Encoded ssp, Uri.Encoded fragment)Creates a new Uri instance using the given encoded arguments.static Uricreate(Uri.Encoded scheme, Uri.Encoded userinfo, Uri.Encoded host, int port, Uri.Encoded path, Uri.Encoded query, Uri.Encoded fragment)Creates a new Uri instance using the given encoded arguments.static Uricreate(Uri.Encoded scheme, Uri.Encoded host, Uri.Encoded path, Uri.Encoded fragment)Creates a new Uri instance using the given encoded arguments.static Uricreate(Uri.Encoded scheme, Uri.Encoded authority, Uri.Encoded path, Uri.Encoded query, Uri.Encoded fragment)Creates a new Uri instance using the given encoded arguments.static Uricreate(String scheme, String ssp, String fragment)Creates a new Uri instance using the given unencoded arguments.static Uricreate(String scheme, String userinfo, String host, int port, String path, String query, String fragment)Creates a new Uri instance using the given unencoded arguments.static Uricreate(String scheme, String host, String path, String fragment)Creates a new Uri instance using the given unencoded arguments.static Uricreate(String scheme, String authority, String path, String query, String fragment)Creates a new Uri instance using the given unencoded arguments.static Stringdecode(Uri.Encoded encoded)SafeUri.Encoded.decode()call on optionalencodedinstance.static Stringdecode(String encoded)Decodes the string argument which is assumed to be encoded in thex-www-form-urlencodedMIME content type using the UTF-8 encoding scheme.static Stringencode(String vanilla, String legal)All characters are encoded into their hexadecimal value prepended by '%', except: letters ('a'..'z', 'A'..'Z') numbers ('0'..'9') characters in the legal-set parameter others (unicode characters that are not in US-ASCII set, and are not ISO Control or are not ISO Space characters)static StringencodeToASCIIString(String unicode)Other characters, which are Unicode chars that are not US-ASCII, and are not ISO Control or are not ISO Space chars are not preserved and encoded into their hexidecimal value prepended by '%'.booleanequals(Object o)UrigetContainedUri()If this instance'sschemeSpecificPartcontains a Uri itself, a sub-Uri, returnschemeSpecificPart+#fragmentvia it's own new Uri instance.UrigetDirectory()Returns this Uri's directory Uri.Uri.EncodedgetEncoded()Returns the encodedinput, nevernull.UrigetNewQuery(Uri.Encoded newQuery)Returns a new Uri instance w/ the given new querynewQuery.UrigetNormalized()UrigetParent()Returns this Uri's parent directory Uri..UrigetRelativeOf(Uri.Encoded appendPath)Returns a new Uri appending the givenappendPathto this instance'sdirectory.static StringgetScheme(String uri)inthashCode()booleanisFileScheme()Returns true, if this instance is afilescheme, otherwise false.static booleanisFileScheme(String uri)static booleanisHttpxScheme(String uri)booleanisJarScheme()Returns true, if this instance is ajarscheme, otherwise false.static booleanisValidScheme(String scheme)Uri.ASCIIEncodedtoASCIIString()Returns the encodedinputencoded in US-ASCII.FiletoFile()If this instanceis a file scheme, implementation decodes [ "//"+authority] +path,
then it processes the result ifFile.separatorChar== '\\'as follows: slash -> backslash drop a starting single backslash, preserving windows UNC and returns the resulting newFileinstance.StringtoString()URItoURI()URItoURIReencoded()Returns a newURIinstance based upon this instance.URLtoURL()static UritryUriOrFile(String uri_s)Return first successful resultingUri.static UrivalueOf(File file)Creates a new Uri instance using the given File instance.static UrivalueOf(URI uri)Creates a new Uri instance using the given URI instance.static UrivalueOf(URL url)Creates a new Uri instance using the given URL instance, convenient wrapper forvalueOf(URI)andURL#toURI().static UrivalueOfFilepath(String path)Creates a new Uri instance using the given file-path argument.
-
-
-
Field Detail
-
UNRESERVED
public static final String UNRESERVED
RFC 3986 section 2.3 Unreserved Characters (January 2005)"_-.~" +
alphanum- See Also:
- Constant Field Values
-
RESERVED
public static final String RESERVED
RFC 3986 section 2.2 Reserved Characters (January 2005)",;:$&+=!*\'()@/?#[]" +
alphanum- See Also:
- Constant Field Values
-
RESERVED_2
public static final String RESERVED_2
- See Also:
- Constant Field Values
-
USERINFO_LEGAL
public static final String USERINFO_LEGAL
Valid charset for RFC 2396authority'suser-info, additional to legalalphanumcharacters."_-.~,;:$&+=" +
alphanum- See Also:
- Constant Field Values
-
AUTHORITY_LEGAL
public static final String AUTHORITY_LEGAL
Valid charset for RFC 2396authority, additional to legalalphanumcharacters."@[]_-.~,;:$&+=" +
alphanum- See Also:
- Constant Field Values
-
PATH_LEGAL
public static final String PATH_LEGAL
Valid charset for RFC 2396path, additional to legalalphanumcharacters."/!_-.~" +
alphanum- See Also:
- Constant Field Values
-
QUERY_LEGAL
public static final String QUERY_LEGAL
Valid charset for RFC 2396query, additional to legalalphanumcharacters."_-.~,;:$&+=!*\'()@/?[]\\\"" +
alphanum- See Also:
- Constant Field Values
-
SSP_LEGAL
public static final String SSP_LEGAL
Valid charset for RFC 2396scheme-specific-part, additional to legalalphanumcharacters."_-.~,;:$&+=!*\'()@/?[]\\\"" +
alphanum- See Also:
- Constant Field Values
-
FRAG_LEGAL
public static final String FRAG_LEGAL
Valid charset for RFC 2396fragment, additional to legalalphanumcharacters."_-.~,;:$&+=!*\'()@/?#[]" +
alphanum- See Also:
- Constant Field Values
-
SCHEME_SEPARATOR
public static final char SCHEME_SEPARATOR
58- See Also:
- Constant Field Values
-
QUERY_SEPARATOR
public static final char QUERY_SEPARATOR
63- See Also:
- Constant Field Values
-
FRAGMENT_SEPARATOR
public static final char FRAGMENT_SEPARATOR
35- See Also:
- Constant Field Values
-
FILE_SCHEME
public static final String FILE_SCHEME
"file"- See Also:
- Constant Field Values
-
HTTP_SCHEME
public static final String HTTP_SCHEME
"http"- See Also:
- Constant Field Values
-
HTTPS_SCHEME
public static final String HTTPS_SCHEME
"https"- See Also:
- Constant Field Values
-
JAR_SCHEME
public static final String JAR_SCHEME
"jar"- See Also:
- Constant Field Values
-
JAR_SCHEME_SEPARATOR
public static final char JAR_SCHEME_SEPARATOR
A JAR sub-protocol is separated from the JAR entry w/ this separator 33. Even if no class is specified '!/' must follow!.- See Also:
- Constant Field Values
-
input
public final Uri.Encoded input
Encoded input string used at construction, nevernull.
-
scheme
public final Uri.Encoded scheme
Encodedscheme,nullif undefined.
-
schemeSpecificPart
public final Uri.Encoded schemeSpecificPart
Encodedscheme-specific-part, nevernull.
-
path
public final Uri.Encoded path
Encodedpathpart ofscheme-specific-part, nevernull.
-
hasAuthority
public final boolean hasAuthority
Indicating whetherauthoritypart is defined or not.
-
authority
public final Uri.Encoded authority
Encodedauthoritypart ofscheme-specific-part,nullif undefined.
-
userInfo
public final Uri.Encoded userInfo
Encodeduserinfopart ofauthorityandscheme-specific-part,nullif undefined.
-
host
public final Uri.Encoded host
Encodedhostpart ofauthorityandscheme-specific-part,nullif undefined.
-
port
public final int port
Encodedportpart ofauthorityandscheme-specific-part,-1if undefined.
-
query
public final Uri.Encoded query
Encodedquerypart ofscheme-specific-part,nullif undefined.
-
fragment
public final Uri.Encoded fragment
Encodedfragment,nullif undefined.
-
absolute
public final boolean absolute
Indicating whether this Uri is absolute, i.e. has aschemeand hence an absolutescheme-specific-part.
-
opaque
public final boolean opaque
Indicating whether this Uri is opaque, i.e. non-hierarchicalscheme-specific-part.An opaque Uri has no
scheme-specific-partbeing parsed, i.e.path,queryandauthorityarenull.
-
-
Constructor Detail
-
Uri
public Uri(Uri.Encoded uri) throws URISyntaxException
Creates a new Uri instance according to the given encoded stringuri.- Parameters:
uri- the RFC3986 encoded RFC2396 Uri representation to be parsed into a Uri object- Throws:
URISyntaxException- if the given stringuridoesn't fit to the specification RFC2396 and RFC3986 or could not be parsed correctly.
-
-
Method Detail
-
encode
public static String encode(String vanilla, String legal)
All characters are encoded into their hexadecimal value prepended by '%', except:- letters ('a'..'z', 'A'..'Z')
- numbers ('0'..'9')
- characters in the legal-set parameter
- others (unicode characters that are not in US-ASCII set, and are not ISO Control or are not ISO Space characters)
Use
encodeToASCIIString(String)for US-ASCII encoding.Consider using
Encoded(String, String)in APIs to distinguish encoded from unencoded data by type.- Parameters:
vanilla- the string to be encodedlegal- extended character set, allowed to be preserved in the vanilla string- Returns:
- java.lang.String the converted string
-
encodeToASCIIString
public static String encodeToASCIIString(String unicode)
Other characters, which are Unicode chars that are not US-ASCII, and are not ISO Control or are not ISO Space chars are not preserved and encoded into their hexidecimal value prepended by '%'.For example: Euro currency symbol -> "%E2%82%AC".
Consider using
ASCIIEncoded(String)in APIs to distinguish encoded from unencoded data by type.- Parameters:
unicode- string to be converted- Returns:
- java.lang.String the converted string
-
decode
public static String decode(Uri.Encoded encoded)
SafeUri.Encoded.decode()call on optionalencodedinstance.- Parameters:
encoded-Uri.Encodedinstance to be decoded, may benull.- Returns:
- the
decodedString ornullifencodedwasnull.
-
decode
public static String decode(String encoded)
Decodes the string argument which is assumed to be encoded in thex-www-form-urlencodedMIME content type using the UTF-8 encoding scheme.'%' and two following hex digit characters are converted to the equivalent byte value. All other characters are passed through unmodified.
e.g. "A%20B%20C %24%25" -> "A B C $%"
- Parameters:
encoded- The encoded string.- Returns:
- java.lang.String The decoded version.
-
create
public static Uri create(String scheme, String ssp, String fragment) throws URISyntaxException
Creates a new Uri instance using the given unencoded arguments.This constructor first creates a temporary Uri string from the given unencoded components. This string will be parsed later on to create the Uri instance.
[scheme:]scheme-specific-part[#fragment]hostandportmay be undefined or invalid withinscheme-specific-part.- Parameters:
scheme- the unencoded scheme part of the Uri.ssp- the unencoded scheme-specific-part of the Uri.fragment- the unencoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
create
public static Uri create(Uri.Encoded scheme, Uri.Encoded ssp, Uri.Encoded fragment) throws URISyntaxException
Creates a new Uri instance using the given encoded arguments.This constructor first creates a temporary Uri string from the given encoded components. This string will be parsed later on to create the Uri instance.
The given encoded components are taken as-is, i.e. no re-encoding will be performed! However, Uri parsing will re-evaluate encoding of the resulting components.
[scheme:]scheme-specific-part[#fragment]hostandportmay be undefined or invalid withinscheme-specific-part.- Parameters:
scheme- the encoded scheme part of the Uri.ssp- the encoded scheme-specific-part of the Uri.fragment- the encoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
create
public static Uri create(String scheme, String userinfo, String host, int port, String path, String query, String fragment) throws URISyntaxException
Creates a new Uri instance using the given unencoded arguments.This constructor first creates a temporary Uri string from the given unencoded components. This string will be parsed later on to create the Uri instance.
[scheme:][user-info@]host[:port][path][?query][#fragment]hostandportmust be defined and valid, if anyauthoritycomponents are defined, i.e.user-info,hostorport.- Parameters:
scheme- the unencoded scheme part of the Uri.userinfo- the unencoded user information of the Uri for authentication and authorization,nullfor undefined.host- the unencoded host name of the Uri,nullfor undefined.port- the port number of the Uri, -1 for undefined.path- the unencoded path to the resource on the host.query- the unencoded query part of the Uri to specify parameters for the resource.fragment- the unencoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
create
public static Uri create(Uri.Encoded scheme, Uri.Encoded userinfo, Uri.Encoded host, int port, Uri.Encoded path, Uri.Encoded query, Uri.Encoded fragment) throws URISyntaxException
Creates a new Uri instance using the given encoded arguments.This constructor first creates a temporary Uri string from the given encoded components. This string will be parsed later on to create the Uri instance.
The given encoded components are taken as-is, i.e. no re-encoding will be performed! However, Uri parsing will re-evaluate encoding of the resulting components.
[scheme:][user-info@]host[:port][path][?query][#fragment]hostandportmust be defined and valid, if anyauthoritycomponents are defined, i.e.user-info,hostorport.- Parameters:
scheme- the encoded scheme part of the Uri.userinfo- the encoded user information of the Uri for authentication and authorization,nullfor undefined.host- the encoded host name of the Uri,nullfor undefined.port- the port number of the Uri, -1 for undefined.path- the encoded path to the resource on the host.query- the encoded query part of the Uri to specify parameters for the resource.fragment- the encoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
create
public static Uri create(String scheme, String host, String path, String fragment) throws URISyntaxException
Creates a new Uri instance using the given unencoded arguments.This constructor first creates a temporary Uri string from the given unencoded components. This string will be parsed later on to create the Uri instance.
[scheme:]host[path][#fragment]hostmust be valid, if defined.- Parameters:
scheme- the unencoded scheme part of the Uri.host- the unencoded host name of the Uri.path- the unencoded path to the resource on the host.fragment- the unencoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
create
public static Uri create(Uri.Encoded scheme, Uri.Encoded host, Uri.Encoded path, Uri.Encoded fragment) throws URISyntaxException
Creates a new Uri instance using the given encoded arguments.This constructor first creates a temporary Uri string from the given encoded components. This string will be parsed later on to create the Uri instance.
The given encoded components are taken as-is, i.e. no re-encoding will be performed! However, Uri parsing will re-evaluate encoding of the resulting components.
[scheme:]host[path][#fragment]hostmust be valid, if defined.- Parameters:
scheme- the encoded scheme part of the Uri.host- the encoded host name of the Uri.path- the encoded path to the resource on the host.fragment- the encoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
create
public static Uri create(String scheme, String authority, String path, String query, String fragment) throws URISyntaxException
Creates a new Uri instance using the given unencoded arguments.This constructor first creates a temporary Uri string from the given unencoded components. This string will be parsed later on to create the Uri instance.
[scheme:][//authority][path][?query][#fragment]hostandportmay be undefined or invalid, in the optionalauthority.- Parameters:
scheme- the unencoded scheme part of the Uri.authority- the unencoded authority part of the Uri.path- the unencoded path to the resource on the host.query- the unencoded query part of the Uri to specify parameters for the resource.fragment- the unencoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
create
public static Uri create(Uri.Encoded scheme, Uri.Encoded authority, Uri.Encoded path, Uri.Encoded query, Uri.Encoded fragment) throws URISyntaxException
Creates a new Uri instance using the given encoded arguments.This constructor first creates a temporary Uri string from the given encoded encoded components. This string will be parsed later on to create the Uri instance.
The given encoded components are taken as-is, i.e. no re-encoding will be performed! However, Uri parsing will re-evaluate encoding of the resulting components.
[scheme:][//authority][path][?query][#fragment]hostandportmay be undefined or invalid, in the optionalauthority.- Parameters:
scheme- the encoded scheme part of the Uri.authority- the encoded authority part of the Uri.path- the encoded path to the resource on the host.query- the encoded query part of the Uri to specify parameters for the resource.fragment- the encoded fragment part of the Uri.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
cast
public static Uri cast(String encodedUri) throws URISyntaxException
Casts the given encoded String to anew Encoded instanceused to create the resulting Uri instance viaUri(Encoded).No encoding will be performed on the given
encodedUri, use with care.- Throws:
URISyntaxException
-
valueOfFilepath
public static Uri valueOfFilepath(String path) throws URISyntaxException
Creates a new Uri instance using the given file-path argument.This constructor first creates a temporary Uri string from the given components. This string will be parsed later on to create the Uri instance.
file:path- Parameters:
path- the unencoded path of thefileschema.- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
valueOf
public static Uri valueOf(File file) throws URISyntaxException
Creates a new Uri instance using the given File instance.This constructor first creates a temporary Uri string from the given components. This string will be parsed later on to create the Uri instance.
file:path- Parameters:
file- usingslashifiedabsolute-pathfor the path of thefileschema, utilizingvalueOfFilepath(String).- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
valueOf
public static Uri valueOf(URI uri) throws URISyntaxException
Creates a new Uri instance using the given URI instance.Re-encoding will be performed if the given URI is
not opaque.See
PARSE_HINT_FIX_PATHfor issues of injecting opaque URLs.- Parameters:
uri- A given URI instance- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
valueOf
public static Uri valueOf(URL url) throws URISyntaxException
Creates a new Uri instance using the given URL instance, convenient wrapper forvalueOf(URI)andURL#toURI().Re-encoding will be performed if the given URL is
not opaque, seevalueOf(URI).See
PARSE_HINT_FIX_PATHfor issues of injecting opaque URLs.- Parameters:
url- A given URL instance- Throws:
URISyntaxException- if the temporary created string doesn't fit to the specification RFC2396 or could not be parsed correctly.
-
tryUriOrFile
public static Uri tryUriOrFile(String uri_s)
Return first successful resultingUri. Trycast(String)first, thenvalueOfFilepath(String)andvalueOf(File)at last.- Parameters:
uri_s- a hopefully usable Uri location- Returns:
- a valid Uri instance or
null
-
isFileScheme
public final boolean isFileScheme()
Returns true, if this instance is afilescheme, otherwise false.
-
isFileScheme
public static boolean isFileScheme(String uri)
-
isHttpxScheme
public static boolean isHttpxScheme(String uri)
-
isJarScheme
public final boolean isJarScheme()
Returns true, if this instance is ajarscheme, otherwise false.- Since:
- 2.3.2
-
getEncoded
public final Uri.Encoded getEncoded()
Returns the encodedinput, nevernull.
-
toASCIIString
public Uri.ASCIIEncoded toASCIIString()
Returns the encodedinputencoded in US-ASCII.
-
toURI
public final URI toURI()
Returns a newURIinstance using the encodedinputstring,new URI(uri.input), i.e. no re-encoding will be performed.- See Also:
#toURIReencoded(boolean),valueOf(URI)
-
toURIReencoded
public final URI toURIReencoded() throws URISyntaxException
Returns a newURIinstance based upon this instance.All Uri parts of this instance will be decoded and encoded by the URI constructor, i.e. re-encoding will be performed.
- Throws:
URISyntaxException- if the given stringuridoesn't fit to the specification RFC2396 or could not be parsed correctly.- See Also:
toURI(),valueOf(URI)
-
toURL
public final URL toURL() throws MalformedURLException
Returns a newURLinstance using the encodedinputstring,new URL(uri.input), i.e. no re-encoding will be performed.- Throws:
MalformedURLException- if an error occurs while creating the URL or no protocol handler could be found.
-
toFile
public final File toFile()
If this instanceis a file scheme, implementation decodes [ "//"+authority] +path,
then it processes the result ifFile.separatorChar== '\\'as follows:- slash -> backslash
- drop a starting single backslash, preserving windows UNC
Fileinstance.Otherwise implementation returns
null.
-
getContainedUri
public final Uri getContainedUri() throws URISyntaxException
If this instance'sschemeSpecificPartcontains a Uri itself, a sub-Uri, returnschemeSpecificPart+#fragmentvia it's own new Uri instance.In case this Uri is a
jar-scheme, thequeryis omitted, since it shall be invalid forjar-schemesanyway.Otherwise method returns
null.Example 1: This instance:jar:scheme2:/some/path/gluegen-rt.jar!/com/jogamp/common/GlueGenVersion.classReturned Uri:scheme2:/some/path/gluegen-rt.jarExample 2: This instance:jar:scheme2:/some/path/gluegen-rt.jar!/com/jogamp/common/GlueGenVersion.class?lala=01#fragmentReturned Uri:scheme2:/some/path/gluegen-rt.jar#fragmentExample 3: This instance:scheme1:scheme2:/some/path/gluegen-rt.jar!/?lala=01#fragmentReturned Uri:scheme2:/some/path/gluegen-rt.jar?lala=01#fragment- Throws:
URISyntaxException- if this Uri is a container Uri and does not comply with the container spec, i.e. a JAR Uri
-
getNormalized
public final Uri getNormalized()
Normalizesthis Uri's path and return thenormalizedform if it differs, otherwisethisinstance.Example-1: This instance :jar:http://some/path/../gluegen-rt.jar!/com/Test.class?arg=1#fragNormalized :jar:http://some/gluegen-rt.jar!/com/Test.class?arg=1#fragExample-2: This instance :http://some/path/../gluegen-rt.jar?arg=1#fragNormalized :http://some/gluegen-rt.jar?arg=1#frag
-
getDirectory
public Uri getDirectory()
Returns this Uri's directory Uri.This Uri path will be
normalizedbefore returning the directory.If this Uri's directory cannot be found, or already denotes a directory, method returns
thisinstance.Example-1: this-uri: http:/some/path/gluegen-rt.jar?arg=1#frag result: http:/some/path/?arg=1#frag Example-2: this-uri: file:/some/path/ result: file:/some/path/ Example-3: this-uri: file:/some/path/lala/lili/../../hello.txt result: file:/some/path/- Throws:
URISyntaxException- if the new stringuridoesn't fit to the specification RFC2396 and RFC3986 or could not be parsed correctly.
-
getParent
public final Uri getParent()
Returns this Uri's parent directory Uri..This Uri path will be
normalizedbefore traversing up one directory.If a parent folder cannot be found, method returns
null.Example-1: This instance :jar:http://some/path/gluegen-rt.jar!/com/Test.class?arg=1#fragReturned Uri #1:jar:http://some/path/gluegen-rt.jar!/com/?arg=1#fragReturned Uri #2:jar:http://some/path/gluegen-rt.jar!/?arg=1#fragReturned Uri #3:nullExample-2: This instance :http://some/path/gluegen-rt.jar?arg=1#fragReturned Uri #1:http://some/path/?arg=1#fragReturned Uri #2:http://some/?arg=1#fragReturned Uri #2:nullExample-3: This instance :http://some/path/../gluegen-rt.jar?arg=1#fragReturned Uri #1:http://some/?arg=1#fragReturned Uri #2:null
-
getRelativeOf
public Uri getRelativeOf(Uri.Encoded appendPath) throws URISyntaxException
Returns a new Uri appending the givenappendPathto this instance'sdirectory.If
appendPathis empty, method behaves likegetNormalized().This resulting path will be
normalized.Example-1: append: null this-uri: http:/some/path/gluegen-rt.jar result: http:/some/path/gluegen-rt.jar Example-2: append: test.txt this-uri: file:/some/path/gluegen-rt.jar result: file:/some/path/test.txt Example-3: append: test.txt this-uri: file:/some/path/lala/lili/../../hello.txt result: file:/some/path/test.txt- Parameters:
appendPath- denotes a relative path to be appended to this Uri's directory- Throws:
URISyntaxException- if the resultinguridoesn't fit to the specification RFC2396 and RFC3986 or could not be parsed correctly.
-
concat
public final Uri concat(Uri.Encoded suffix) throws URISyntaxException
Concatenates the given encoded string to theencoded uriof this instance and returnsa new Uri instancewith the result.- Throws:
URISyntaxException- if the concatenated stringuridoesn't fit to the specification RFC2396 and RFC3986 or could not be parsed correctly.
-
getNewQuery
public final Uri getNewQuery(Uri.Encoded newQuery) throws URISyntaxException
Returns a new Uri instance w/ the given new querynewQuery.- Throws:
URISyntaxException- if this Uri isopaqueor if the new stringuridoesn't fit to the specification RFC2396 and RFC3986 or could not be parsed correctly.
-
equals
public final boolean equals(Object o)
Compares this Uri instance with the given argument
oand determines if both are equal. Two Uri instances are equal if all single parts are identical in their meaning.
-
hashCode
public final int hashCode()
Gets the hashcode value of this Uri instance.
-
isValidScheme
public static boolean isValidScheme(String scheme)
-
-