Package io.inversion
Class Url
- java.lang.Object
-
- io.inversion.Url
-
public final class Url extends java.lang.ObjectUtility 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 Constructor Description Url(java.lang.String url)Parsesurlinto its protocol, host, port, path and query string param parts.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearParams()java.lang.StringclearParams(java.lang.String... tokens)Removes any param that has one oftokensas a whole word case insensitive substring in the key.Urlcopy()static java.lang.Stringencode(java.lang.String str)booleanequals(java.lang.Object url)Checks url equality based on type and toString equalityjava.lang.StringfindKey(java.lang.String... tokens)Finds a key that has any one oftokensas a whole word case insensitive substringjava.lang.StringfindKeyValue(java.lang.String... tokens)Finds the value associated withfindKey(tokens)java.lang.StringgetDomain()java.lang.StringgetFile()Gets the last url path part if it existsjava.lang.StringgetHost()io.inversion.utils.PathgetHostAsPath()java.lang.StringgetOriginal()java.lang.StringgetParam(java.lang.String key)Gets the param value withkeybased on a case insensitive match.java.util.Map<java.lang.String,java.lang.String>getParams()io.inversion.utils.PathgetPath()intgetPort()java.lang.StringgetProtocol()java.lang.StringgetQueryString()Generates a URL encode query string forparamsstatic java.lang.StringtoQueryString(java.util.Map<java.lang.String,java.lang.String> params)Creates a UTF-8 url encoded query string, not including a leading "?" with key value pairs separated by a '&'java.lang.StringtoString()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.UrlwithHost(java.lang.String host)UrlwithParam(io.inversion.rql.Term term)UrlwithParam(java.lang.String name, java.lang.String value)Adds name/value toparamsoverwriting any preexisting key/value pair on a key case insensitive basis.UrlwithParams(java.lang.String... nvpairs)UrlwithParams(java.util.Map<java.lang.String,java.lang.String> params)Adds all key/value pairs fromnewParamstoparamsoverwriting any exiting keys on a case insensitive basisUrlwithPath(io.inversion.utils.Path path)UrlwithPort(int port)UrlwithProtocol(java.lang.String protocol)UrlwithQueryString(java.lang.String queryString)ParsesqueryStringand replaceparams
-
-
-
Method Detail
-
copy
public Url copy()
-
toQueryString
public static java.lang.String toQueryString(java.util.Map<java.lang.String,java.lang.String> params)
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:
URLEncoder.encode(String, String)
-
encode
public static java.lang.String encode(java.lang.String str)
-
toString
public java.lang.String 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.- Overrides:
toStringin classjava.lang.Object- Returns:
- the string representation of this url
-
equals
public boolean equals(java.lang.Object url)
Checks url equality based on type and toString equality- Overrides:
equalsin classjava.lang.Object- Returns:
- true if
urlis a Url with a matching toString
-
getDomain
public java.lang.String getDomain()
-
getQueryString
public java.lang.String getQueryString()
Generates a URL encode query string forparams- Returns:
- a URL encoded query string if
params.size() is @gt; 0else empty string - See Also:
toQueryString(Map)
-
getHost
public java.lang.String getHost()
-
withHost
public Url withHost(java.lang.String host)
-
getHostAsPath
public io.inversion.utils.Path getHostAsPath()
-
getPort
public int getPort()
-
withPort
public Url withPort(int port)
-
getProtocol
public java.lang.String getProtocol()
-
withProtocol
public Url withProtocol(java.lang.String protocol)
-
getPath
public io.inversion.utils.Path getPath()
-
withPath
public Url withPath(io.inversion.utils.Path path)
-
getFile
public java.lang.String getFile()
Gets the last url path part if it exists- Returns:
- path.last() if it exists otherwise null
-
withQueryString
public Url withQueryString(java.lang.String queryString)
ParsesqueryStringand replaceparams- Parameters:
queryString- query prams to add- Returns:
- this
-
withParams
public Url withParams(java.util.Map<java.lang.String,java.lang.String> params)
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
public Url withParam(io.inversion.rql.Term term)
-
withParam
public Url withParam(java.lang.String name, java.lang.String value)
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
public Url withParams(java.lang.String... nvpairs)
-
clearParams
public java.lang.String clearParams(java.lang.String... tokens)
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
public java.lang.String findKey(java.lang.String... tokens)
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
public java.lang.String findKeyValue(java.lang.String... tokens)
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:
findKey(String...)
-
getParam
public java.lang.String getParam(java.lang.String key)
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
public java.util.Map<java.lang.String,java.lang.String> getParams()
- Returns:
- a new case insensitive order preserving map copy of
params
-
getOriginal
public java.lang.String getOriginal()
- Returns:
- the url string used in constructing this Url.
-
-