Package io.inversion
Class Url
java.lang.Object
io.inversion.Url
Utility class for parsing and working with HTTP(S) URLs.
Not for use with non HTTP(S) urls.
A number of different utility methods are provided to make it simple to find or remove different query string keys.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclearParams(String... tokens) Removes any param that has one oftokensas a whole word case insensitive substring in the key.copy()static StringbooleanChecks url equality based on type and toString equalityFinds a key that has any one oftokensas a whole word case insensitive substringfindKeyValue(String... tokens) Finds the value associated withfindKey(tokens)getFile()Gets the last url path part if it existsgetHost()io.inversion.utils.PathGets the param value withkeybased on a case insensitive match.io.inversion.utils.PathgetPath()intgetPort()Generates a URL encode query string forparamsstatic StringtoQueryString(Map<String, String> params) Creates a UTF-8 url encoded query string, not including a leading "?" with key value pairs separated by a '&'toString()Generates a string string representation of this url with any query string parameters URL encoded and port number included only if it differs from the standard protocol port.withParam(io.inversion.rql.Term term) Adds name/value toparamsoverwriting any preexisting key/value pair on a key case insensitive basis.withParams(String... nvpairs) withParams(Map<String, String> params) Adds all key/value pairs fromnewParamstoparamsoverwriting any exiting keys on a case insensitive basiswithPath(io.inversion.utils.Path path) withPort(int port) withProtocol(String protocol) withQueryString(String queryString) ParsesqueryStringand replaceparams
-
Constructor Details
-
Url
Parsesurlinto its protocol, host, port, path and query string param parts.If
urldoes not start with "http://" or "https://" then "http://127.0.0.1" will be prepended.- Parameters:
url- url string
-
-
Method Details
-
copy
-
toQueryString
Creates a UTF-8 url encoded query string, not including a leading "?" with key value pairs separated by a '&'- Parameters:
params- the key/value pairs to encode- Returns:
- a UTF-8 url encoded query string
- See Also:
-
encode
-
toString
Generates a string string representation of this url with any query string parameters URL encoded and port number included only if it differs from the standard protocol port. -
equals
Checks url equality based on type and toString equality -
getDomain
-
getQueryString
Generates a URL encode query string forparams- Returns:
- a URL encoded query string if
params.size() is @gt; 0else empty string - See Also:
-
getHost
-
withHost
-
getHostAsPath
public io.inversion.utils.Path getHostAsPath() -
getPort
public int getPort() -
withPort
-
getProtocol
-
withProtocol
-
getPath
public io.inversion.utils.Path getPath() -
withPath
-
getFile
Gets the last url path part if it exists- Returns:
- path.last() if it exists otherwise null
-
withQueryString
ParsesqueryStringand replaceparams- Parameters:
queryString- query prams to add- Returns:
- this
-
withParams
Adds all key/value pairs fromnewParamstoparamsoverwriting any exiting keys on a case insensitive basis- Parameters:
params- name/value pairs to add to the query string params map- Returns:
- this
-
withParam
-
withParam
Adds name/value toparamsoverwriting any preexisting key/value pair on a key case insensitive basis.- Parameters:
name- the key to add or overwrite, may not be nullvalue- the value, may be null- Returns:
- this
-
withParams
-
clearParams
Removes any param that has one oftokensas a whole word case insensitive substring in the key.- Parameters:
tokens- string tokens when found in a param key will cause them to be removed- Returns:
- the first value found that contained any one of
tokens - See Also:
-
Utils.containsToken(java.lang.String, java.lang.String)
-
clearParams
public void clearParams() -
findKey
Finds a key that has any one oftokensas a whole word case insensitive substring- Parameters:
tokens- substrings to search params.keySet() for- Returns:
- the first param key that has anyone of
tokensas a whole word case insensitive substring
-
findKeyValue
Finds the value associated withfindKey(tokens)- Parameters:
tokens- substrings to search params.keySet() for- Returns:
- the value for the first param key that has anyone of
tokensas a whole word case insensitive substring - See Also:
-
getParam
Gets the param value withkeybased on a case insensitive match.- Parameters:
key- the key to get- Returns:
- the param value for
keybased on a case insensitive match.
-
getParams
- Returns:
- a new case insensitive order preserving map copy of
params
-
getOriginal
- Returns:
- the url string used in constructing this Url.
-