public class GenericUrl extends GenericData
The query parameters are specified with the data key name as the parameter name, and the data value as the parameter value. Subclasses can declare fields for known query parameters using the Key annotation. null parameter names are not allowed, but null query values are allowed.
Query parameter values are parsed using UrlEncodedParser.
Implementation is not thread-safe.
GenericData.Flags AbstractMap.SimpleEntry <K,V>, AbstractMap.SimpleImmutableEntry <K,V> | Constructor and Description |
|---|
GenericUrl()
|
GenericUrl(String
Constructs from an encoded URL.
|
GenericUrl(URI
Constructs from a URI.
|
GenericUrl(URL
Constructs from a URL.
|
| Modifier and Type | Method and Description |
|---|---|
void |
appendRawPath(String
Appends the given raw encoded path to the current
pathParts, setting field only if it is
null or empty.
|
String |
build()
Constructs the string representation of the URL, including the path specified by
pathParts and the query parameters specified by this generic URL.
|
String |
buildAuthority()
Constructs the portion of the URL containing the scheme, host and port.
|
String |
buildRelativeUrl()
Constructs the portion of the URL beginning at the rooted path.
|
GenericUrl |
clone()
Makes a "deep" clone of the generic data, in which the clone is completely independent of the original.
|
boolean |
equals(Object
|
Collection |
getAll(String
Returns all query parameter values for the given query parameter name.
|
Object |
getFirst(String
Returns the first query parameter value for the given query parameter name.
|
String |
getFragment()
Returns the fragment component or
null for none.
|
String |
getHost()
Returns the host, for example
"www.google.com".
|
List |
getPathParts()
Returns the decoded path component by parts with each part separated by a
'/' or
null for none.
|
int |
getPort()
Returns the port number or
-1 if undefined, for example
443.
|
String |
getRawPath()
Returns the raw encoded path computed from the
pathParts.
|
String |
getScheme()
Returns the scheme (lowercase), for example
"https".
|
String |
getUserInfo()
Returns the user info or
null for none, for example
"username:password".
|
int |
hashCode()
|
GenericUrl |
set(String
Sets the given field value (may be
null) for the given field name.
|
void |
setFragment(String
Sets the fragment component or
null for none.
|
void |
setHost(String
Sets the host, for example
"www.google.com".
|
void |
setPathParts(List
Sets the decoded path component by parts with each part separated by a
'/' or
null for none.
|
void |
setPort(int port)
Sets the port number, for example
443.
|
void |
setRawPath(String
Sets the
pathParts from the given raw encoded path.
|
void |
setScheme(String
Sets the scheme (lowercase), for example
"https".
|
void |
setUserInfo(String
Sets the user info or
null for none, for example
"username:password".
|
static List |
toPathParts(String
Returns the decoded path parts for the given encoded path.
|
String |
toString()
|
URI |
toURI()
Constructs the URI based on the string representation of the URL from
build().
|
URL |
toURL()
Constructs the URL based on the string representation of the URL from
build().
|
URL |
toURL(String
Constructs the URL based on
URL with this URL representation from
toURL() and a relative url.
|
entrySet, get, getClassInfo, getUnknownKeys, put, putAll, remove, setUnknownKeysclear, containsKey, containsValue, isEmpty, keySet, size, valuesfinalize, getClass, notify, notifyAll, wait, wait, waitcompute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAllpublic GenericUrl()
public GenericUrl(StringencodedUrl)
Any known query parameters with pre-defined fields as data keys will be parsed based on their data type. Any unrecognized query parameter will always be parsed as a string.
Any MalformedURLException is wrapped in an IllegalArgumentException.
Upgrade warning: starting in version 1.18 this parses the encodedUrl using new URL(encodedUrl). In previous versions it used new URI(encodedUrl). In particular, this means that only a limited set of schemes are allowed such as "http" and "https", but that parsing is compliant with, at least, RFC 3986.
encodedUrl - encoded URL, including any existing query parameters that should be parsed
IllegalArgumentException - if URL has a syntax error
public GenericUrl(URIuri)
uri - URI
public GenericUrl(URLurl)
url - URL
public int hashCode()
public boolean equals(Objectobj)
public StringtoString()
public GenericUrlclone()
GenericData
public GenericUrlset(String fieldName, Object value)
GenericData
null) for the given field name. Any existing value for the field will be overwritten. It may be more slightly more efficient than
GenericData.put(String, Object) because it avoids accessing the field's original value.
Overriding is only supported for the purpose of calling the super implementation and changing the return type, but nothing else.
public final StringgetScheme()
"https".
public final void setScheme(Stringscheme)
"https".
public StringgetHost()
"www.google.com".
public final void setHost(Stringhost)
"www.google.com".
public final StringgetUserInfo()
null for none, for example
"username:password".
public final void setUserInfo(StringuserInfo)
null for none, for example
"username:password".
public int getPort()
-1 if undefined, for example
443.
public final void setPort(int port)
443.
public List<String > getPathParts()
'/' or
null for none.
public void setPathParts(List<String > pathParts)
'/' or
null for none.
For example "/m8/feeds/contacts/default/full" is represented by "", "m8", "feeds", "contacts", "default", "full".
Use appendRawPath(String) to append to the path, which ensures that no extra slash is added.
public StringgetFragment()
null for none.
public final void setFragment(Stringfragment)
null for none.
public final Stringbuild()
pathParts and the query parameters specified by this generic URL.
public final StringbuildAuthority()
For the URL "http://example.com/something?action=add" this method would return "http://example.com".
public final StringbuildRelativeUrl()
For the URL "http://example.com/something?action=add" this method would return "/something?action=add".
public final URItoURI()
build().
Any URISyntaxException is wrapped in an IllegalArgumentException.
public final URLtoURL()
build().
Any MalformedURLException is wrapped in an IllegalArgumentException.
public final URLtoURL(String relativeUrl)
URL.URL(URL, String) with this URL representation from
toURL() and a relative url.
Any MalformedURLException is wrapped in an IllegalArgumentException.
public ObjectgetFirst(String name)
name - query parameter name
public Collection<Object > getAll(String name)
name - query parameter name
public void setRawPath(StringencodedPath)
pathParts from the given raw encoded path.
encodedPath - raw encoded path or
null to set
pathParts to
null
public void appendRawPath(StringencodedPath)
pathParts, setting field only if it is
null or empty.
The last part of the pathParts is merged with the first part of the path parts computed from the given encoded path. Thus, if the current raw encoded path is "a", and the given encoded path is "b", then the resulting raw encoded path is "ab".
encodedPath - raw encoded path or
null to ignore
public static List<String > toPathParts(String encodedPath)
encodedPath - slash-prefixed encoded path, for example
"/m8/feeds/contacts/default/full"
'/', for example
"", "m8", "feeds", "contacts", "default", "full", or
null for
null or
"" input