org.springframework.web.util
Class UriComponents

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

public final 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

Method Summary
 UriComponents encode()
          Encodes all URI components using their specific encoding rules, and returns the result as a new UriComponents instance.
 UriComponents encode(String encoding)
          Encodes all URI components using their specific encoding rules, and returns the result as a new UriComponents instance.
 boolean equals(Object o)
           
 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.
 String getHost()
          Returns the host.
 String getPath()
          Returns the path.
 List<String> getPathSegments()
          Returns the list of path segments.
 int getPort()
          Returns the port.
 String getQuery()
          Returns the query.
 MultiValueMap<String,String> getQueryParams()
          Returns the map of query parameters.
 String getScheme()
          Returns the scheme.
 String getUserInfo()
          Returns the user info.
 int hashCode()
           
 UriComponents normalize()
          Normalize the path removing sequences like "path/..".
 String toString()
           
 URI toUri()
          Returns a URI from this UriComponents instance.
 String toUriString()
          Returns a URI string from this UriComponents instance.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

getScheme

public String getScheme()
Returns the scheme.

Returns:
the scheme. Can be null.

getUserInfo

public String getUserInfo()
Returns the user info.

Returns:
the user info. Can be null.

getHost

public String getHost()
Returns the host.

Returns:
the host. Can be null.

getPort

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

Returns:
the port

getPath

public String getPath()
Returns the path.

Returns:
the path. Can be null.

getPathSegments

public List<String> getPathSegments()
Returns the list of path segments.

Returns:
the path segments. Empty if no path has been set.

getQuery

public String getQuery()
Returns the query.

Returns:
the query. Can be null.

getQueryParams

public MultiValueMap<String,String> getQueryParams()
Returns the map of query parameters.

Returns:
the query parameters. Empty if no query has been set.

getFragment

public String getFragment()
Returns the fragment.

Returns:
the fragment. Can be null.

encode

public UriComponents encode()
Encodes 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 UriComponents encode(String encoding)
                     throws UnsupportedEncodingException
Encodes 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 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 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

normalize

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

See Also:
StringUtils.cleanPath(String)

toUriString

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

Returns:
the URI string

toUri

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

Returns:
the URI

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object