class UrlBuilder
extends java.lang.Object
The UrlBuilder provides a convenient way to assemble a URL. It follows the standard Builder Pattern. A seed URL is provided, which is broken into parts to allow for dynamic assembly. When the URL is to be build, a call to createUrl() assembles the parts into a relative URL. This class should be extended if the developer wishes to have it deal with absolute URLs.
Note that this class is optimized to parse the query string lazily so as to avoid unnecessary work if the seed URL differs little from the URL to be built.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_ENCODING |
private java.lang.String |
encoding |
private java.lang.String |
fragment |
static java.lang.String |
FRAGMENT_SEPARATOR |
private static java.util.List<java.lang.String> |
NULL_LIST |
static java.lang.String |
PARAMETER_NAME_VALUE_SEPARATOR |
static java.lang.String |
PARAMETER_PAIR_SEPARATOR |
private java.util.Map<java.lang.String,java.util.List<java.lang.String>> |
parameters |
private java.lang.String |
path |
static java.lang.String |
QUERY_STRING_SEPARATOR |
private java.lang.String |
queryString |
private java.lang.StringBuilder |
url |
Constructor and Description |
---|
UrlBuilder(java.lang.String url) |
UrlBuilder(java.lang.String url,
java.lang.String encoding) |
Modifier and Type | Method and Description |
---|---|
UrlBuilder |
addParameters(java.util.Map<java.lang.String,java.util.List<java.lang.String>> params) |
UrlBuilder |
addParameters(java.lang.String name,
java.util.List<java.lang.String> values) |
protected void |
addValuesToParameter(java.lang.String name,
java.util.List<java.lang.String> valuesRef,
boolean replace) |
protected void |
addValueToParameter(java.lang.String name,
java.lang.String value,
boolean replace) |
protected void |
appendFragment() |
protected void |
appendPath() |
protected void |
appendQueryString() |
private void |
cleanFragment() |
private void |
cleanQueryString() |
java.lang.String |
createUrl() |
protected void |
extractSegments(java.lang.String url) |
protected java.util.Map<java.lang.String,java.util.List<java.lang.String>> |
getParameters() |
protected java.lang.String |
getPath() |
protected void |
parseQueryString() |
UrlBuilder |
setFragment(java.lang.String fragment)
The fragment is appended at the end of the url after a hash mark.
|
UrlBuilder |
setPath(java.lang.String path) |
UrlBuilder |
setQueryString(java.lang.String queryString)
Setting a query string consecutively will replace all but the last one.
|
public static final java.lang.String QUERY_STRING_SEPARATOR
public static final java.lang.String PARAMETER_PAIR_SEPARATOR
public static final java.lang.String PARAMETER_NAME_VALUE_SEPARATOR
public static final java.lang.String FRAGMENT_SEPARATOR
public static final java.lang.String DEFAULT_ENCODING
private static final java.util.List<java.lang.String> NULL_LIST
private java.lang.StringBuilder url
private java.lang.String path
private java.lang.String queryString
private java.lang.String fragment
private java.util.Map<java.lang.String,java.util.List<java.lang.String>> parameters
private java.lang.String encoding
public UrlBuilder(java.lang.String url, java.lang.String encoding)
public UrlBuilder(java.lang.String url)
public UrlBuilder addParameters(java.lang.String name, java.util.List<java.lang.String> values)
public UrlBuilder addParameters(java.util.Map<java.lang.String,java.util.List<java.lang.String>> params)
public UrlBuilder setPath(java.lang.String path)
public UrlBuilder setQueryString(java.lang.String queryString)
public UrlBuilder setFragment(java.lang.String fragment)
public java.lang.String createUrl()
protected java.lang.String getPath()
protected java.util.Map<java.lang.String,java.util.List<java.lang.String>> getParameters()
protected void parseQueryString()
protected void appendPath()
protected void appendQueryString()
protected void appendFragment()
protected void extractSegments(java.lang.String url)
protected void addValueToParameter(java.lang.String name, java.lang.String value, boolean replace)
protected void addValuesToParameter(java.lang.String name, java.util.List<java.lang.String> valuesRef, boolean replace)
private void cleanFragment()
private void cleanQueryString()
Copyright © 2002-2013 Oracle America, Inc. All Rights Reserved.