org.springframework.web.util
Class UriComponents

java.lang.Object
  extended by org.springframework.web.util.UriComponents

public abstract class UriComponents
extends Object

Represents an immutable collection of URI components, mapping component type to string values. Contains convenience getters for all components. Effectively similar to URI, but with more powerful encoding options and support for URI template variables.

Since:
3.1
Author:
Arjen Poutsma
See Also:
UriComponentsBuilder

Constructor Summary
protected UriComponents(String scheme, String fragment)
           
 
Method Summary
 UriComponents encode()
          Encode all URI components using their specific encoding rules, and returns the result as a new UriComponents instance.
abstract  UriComponents encode(String encoding)
          Encode all URI components using their specific encoding rules, and returns the result as a new UriComponents instance.
 UriComponents expand(Map<String,?> uriVariables)
          Replaces all URI template variables with the values from a given map.
 UriComponents expand(Object... uriVariableValues)
          Replaces all URI template variables with the values from a given array.
 String getFragment()
          Returns the fragment.
abstract  String getHost()
          Returns the host.
abstract  String getPath()
          Returns the path.
abstract  List<String> getPathSegments()
          Returns the list of path segments.
abstract  int getPort()
          Returns the port.
abstract  String getQuery()
          Returns the query.
abstract  MultiValueMap<String,String> getQueryParams()
          Returns the map of query parameters.
 String getScheme()
          Returns the scheme.
abstract  String getSchemeSpecificPart()
          Returns the scheme specific part.
abstract  String getUserInfo()
          Returns the user info.
abstract  UriComponents normalize()
          Normalize the path removing sequences like "path/..".
 String toString()
           
abstract  URI toUri()
          Returns a URI from this UriComponents instance.
abstract  String toUriString()
          Returns a URI string from this UriComponents instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UriComponents

protected UriComponents(String scheme,
                        String fragment)
Method Detail

getScheme

public final String getScheme()
Returns the scheme. Can be null.


getSchemeSpecificPart

public abstract String getSchemeSpecificPart()
Returns the scheme specific part. Can be null.


getUserInfo

public abstract String getUserInfo()
Returns the user info. Can be null.


getHost

public abstract String getHost()
Returns the host. Can be null.


getPort

public abstract int getPort()
Returns the port. Returns -1 if no port has been set.


getPath

public abstract String getPath()
Returns the path. Can be null.


getPathSegments

public abstract List<String> getPathSegments()
Returns the list of path segments. Empty if no path has been set.


getQuery

public abstract String getQuery()
Returns the query. Can be null.


getQueryParams

public abstract MultiValueMap<String,String> getQueryParams()
Returns the map of query parameters. Empty if no query has been set.


getFragment

public final String getFragment()
Returns the fragment. Can be null.


encode

public final UriComponents encode()
Encode all URI components using their specific encoding rules, and returns the result as a new UriComponents instance. This method uses UTF-8 to encode.

Returns:
the encoded uri components

encode

public abstract UriComponents encode(String encoding)
                              throws UnsupportedEncodingException
Encode all URI components using their specific encoding rules, and returns the result as a new UriComponents instance.

Parameters:
encoding - the encoding of the values contained in this map
Returns:
the encoded uri components
Throws:
UnsupportedEncodingException - if the given encoding is not supported

expand

public final UriComponents expand(Map<String,?> uriVariables)
Replaces all URI template variables with the values from a given map. The map keys represent variable names; the values variable values. The order of variables is not significant.

Parameters:
uriVariables - the map of URI variables
Returns:
the expanded uri components

expand

public final UriComponents expand(Object... uriVariableValues)
Replaces all URI template variables with the values from a given array. The array represent variable values. The order of variables is significant.

Parameters:
uriVariableValues - URI variable values
Returns:
the expanded uri components

toUriString

public abstract String toUriString()
Returns a URI string from this UriComponents instance.


toUri

public abstract URI toUri()
Returns a URI from this UriComponents instance.


toString

public final String toString()
Overrides:
toString in class Object

normalize

public abstract UriComponents normalize()
Normalize the path removing sequences like "path/..".

See Also:
StringUtils.cleanPath(String)