public abstract class UriComponents
extends java.lang.Object
implements java.io.Serializable
URI
, but with more powerful encoding options and support for
URI template variables.UriComponentsBuilder
,
Serialized FormModifier and Type | Class and Description |
---|---|
private static class |
UriComponents.MapTemplateVariables
URI template variables backed by a map.
|
static interface |
UriComponents.UriTemplateVariables
Defines the contract for URI Template variables
|
private static class |
UriComponents.VarArgsTemplateVariables
URI template variables backed by a variable argument array.
|
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
fragment |
private static java.util.regex.Pattern |
NAMES_PATTERN
Captures URI template variable names
|
private java.lang.String |
scheme |
Modifier | Constructor and Description |
---|---|
protected |
UriComponents(java.lang.String scheme,
java.lang.String fragment) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
copyToUriComponentsBuilder(UriComponentsBuilder builder)
Set all components of the given UriComponentsBuilder.
|
UriComponents |
encode()
Encode all URI components using their specific encoding rules, and returns the
result as a new
UriComponents instance. |
abstract UriComponents |
encode(java.nio.charset.Charset charset)
Encode all URI components using their specific encoding rules, and
returns the result as a new
UriComponents instance. |
UriComponents |
expand(java.util.Map<java.lang.String,?> uriVariables)
Replace all URI template variables with the values from a given map.
|
UriComponents |
expand(java.lang.Object... uriVariableValues)
Replace all URI template variables with the values from a given array.
|
UriComponents |
expand(UriComponents.UriTemplateVariables uriVariables)
Replace all URI template variables with the values from the given
UriComponents.UriTemplateVariables . |
(package private) abstract UriComponents |
expandInternal(UriComponents.UriTemplateVariables uriVariables)
Replace all URI template variables with the values from the given
UriComponents.UriTemplateVariables |
(package private) static java.lang.String |
expandUriComponent(java.lang.String source,
UriComponents.UriTemplateVariables uriVariables) |
java.lang.String |
getFragment()
Return the fragment.
|
abstract java.lang.String |
getHost()
Return the host.
|
abstract java.lang.String |
getPath()
Return the path.
|
abstract java.util.List<java.lang.String> |
getPathSegments()
Return the list of path segments.
|
abstract int |
getPort()
Return the port.
|
abstract java.lang.String |
getQuery()
Return the query.
|
abstract MultiValueMap<java.lang.String,java.lang.String> |
getQueryParams()
Return the map of query parameters.
|
java.lang.String |
getScheme()
Return the scheme.
|
abstract java.lang.String |
getSchemeSpecificPart()
Return the scheme specific part.
|
abstract java.lang.String |
getUserInfo()
Return the user info.
|
private static java.lang.String |
getVariableName(java.lang.String match) |
private static java.lang.String |
getVariableValueAsString(java.lang.Object variableValue) |
abstract UriComponents |
normalize()
Normalize the path removing sequences like "path/..".
|
private static java.lang.String |
sanitizeSource(java.lang.String source)
Remove nested "{}" such as in URI vars with regular expressions.
|
java.lang.String |
toString() |
abstract java.net.URI |
toUri()
Return a
URI from this UriComponents instance. |
abstract java.lang.String |
toUriString()
Return a URI String from this
UriComponents instance. |
private static final java.util.regex.Pattern NAMES_PATTERN
private final java.lang.String scheme
private final java.lang.String fragment
protected UriComponents(java.lang.String scheme, java.lang.String fragment)
public final java.lang.String getScheme()
null
.public abstract java.lang.String getSchemeSpecificPart()
null
.public abstract java.lang.String getUserInfo()
null
.public abstract java.lang.String getHost()
null
.public abstract int getPort()
-1
if no port has been set.public abstract java.lang.String getPath()
null
.public abstract java.util.List<java.lang.String> getPathSegments()
public abstract java.lang.String getQuery()
null
.public abstract MultiValueMap<java.lang.String,java.lang.String> getQueryParams()
public final java.lang.String getFragment()
null
.public final UriComponents encode()
UriComponents
instance. This method uses UTF-8 to encode.public abstract UriComponents encode(java.nio.charset.Charset charset)
UriComponents
instance.charset
- the encoding of the values contained in this mappublic final UriComponents expand(java.util.Map<java.lang.String,?> uriVariables)
The given map keys represent variable names; the corresponding values represent variable values. The order of variables is not significant.
uriVariables
- the map of URI variablespublic final UriComponents expand(java.lang.Object... uriVariableValues)
The given array represents variable values. The order of variables is significant.
uriVariableValues
- the URI variable valuespublic final UriComponents expand(UriComponents.UriTemplateVariables uriVariables)
UriComponents.UriTemplateVariables
.uriVariables
- the URI template valuesabstract UriComponents expandInternal(UriComponents.UriTemplateVariables uriVariables)
UriComponents.UriTemplateVariables
uriVariables
- URI template valuespublic abstract UriComponents normalize()
StringUtils.cleanPath(String)
public abstract java.lang.String toUriString()
UriComponents
instance.public abstract java.net.URI toUri()
URI
from this UriComponents
instance.public final java.lang.String toString()
toString
in class java.lang.Object
protected abstract void copyToUriComponentsBuilder(UriComponentsBuilder builder)
static java.lang.String expandUriComponent(java.lang.String source, UriComponents.UriTemplateVariables uriVariables)
private static java.lang.String sanitizeSource(java.lang.String source)
private static java.lang.String getVariableName(java.lang.String match)
private static java.lang.String getVariableValueAsString(java.lang.Object variableValue)