net.shibboleth.utilities.java.support.net
Class UriSupport

java.lang.Object
  extended by net.shibboleth.utilities.java.support.net.UriSupport

@Beta
public final class UriSupport
extends Object

Helper methods for building URIs and parsing some HTTP URL information.


Constructor Summary
private UriSupport()
          Constructor.
 
Method Summary
static String buildQuery(List<Pair<String,String>> parameters)
          Builds an RFC-3968 encoded URL query component from a collection of parameters.
static String getRawQueryStringParameter(String queryString, String paramName)
          Get the first raw (i.e.RFC-3968 encoded) query string component with the specified parameter name.
static List<Pair<String,String>> parseQueryString(String queryString)
          Parses a RFC-3968 encoded query string in to a set of name/value pairs.
static URI setFragment(URI prototype, String fragment)
          Sets the fragment of a URI.
static URI setHost(URI prototype, String host)
          Sets the host of a URI.
static URI setPath(URI prototype, String path)
          Sets the path of a URI.
static URI setPort(URI prototype, int port)
          Sets the port of a URI.
static URI setQuery(URI prototype, List<Pair<String,String>> parameters)
          Sets the query of a URI.
static URI setQuery(URI prototype, String query)
          Sets the query of a URI.
static URI setScheme(URI prototype, String scheme)
          Sets the scheme of a URI.
static String trimOrNullFragment(String fragment)
          Trims an RFC-3968 encoded URL fragment component.
static String trimOrNullPath(String path)
          Trims an RFC-3968 encoded URL path component.
static String trimOrNullQuery(String query)
          Trims an RFC-3968 encoded URL query component.
static String urlDecode(String value)
          URL Decode the given string.
static String urlEncode(String value)
          URL Encode the given string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UriSupport

private UriSupport()
Constructor.

Method Detail

setFragment

public static URI setFragment(URI prototype,
                              String fragment)
Sets the fragment of a URI.

Parameters:
prototype - prototype URI that provides information other than the fragment
fragment - fragment for the new URI
Returns:
new URI built from the prototype URI and the given fragment

setHost

public static URI setHost(URI prototype,
                          String host)
Sets the host of a URI.

Parameters:
prototype - prototype URI that provides information other than the host
host - host for the new URI
Returns:
new URI built from the prototype URI and the given host

setPath

public static URI setPath(URI prototype,
                          String path)
Sets the path of a URI.

Parameters:
prototype - prototype URI that provides information other than the path
path - path for the new URI
Returns:
new URI built from the prototype URI and the given path

setPort

public static URI setPort(URI prototype,
                          int port)
Sets the port of a URI.

Parameters:
prototype - prototype URI that provides information other than the port
port - port for the new URI
Returns:
new URI built from the prototype URI and the given port

setQuery

public static URI setQuery(URI prototype,
                           String query)
Sets the query of a URI.

Parameters:
prototype - prototype URI that provides information other than the query
query - query for the new URI
Returns:
new URI built from the prototype URI and the given query

setQuery

public static URI setQuery(URI prototype,
                           List<Pair<String,String>> parameters)
Sets the query of a URI.

Parameters:
prototype - prototype URI that provides information other than the query
parameters - query parameters for the new URI
Returns:
new URI built from the prototype URI and the given query

setScheme

public static URI setScheme(URI prototype,
                            String scheme)
Sets the scheme of a URI.

Parameters:
prototype - prototype URI that provides information other than the scheme
scheme - scheme for the new URI
Returns:
new URI built from the prototype URI and the given scheme

buildQuery

public static String buildQuery(List<Pair<String,String>> parameters)
Builds an RFC-3968 encoded URL query component from a collection of parameters.

Parameters:
parameters - collection of parameters from which to build the URL query component, may be null or empty
Returns:
RFC-3968 encoded URL query or null if the parameter collection was null or empty

getRawQueryStringParameter

public static String getRawQueryStringParameter(String queryString,
                                                String paramName)
Get the first raw (i.e.RFC-3968 encoded) query string component with the specified parameter name. This method assumes the common query string format of one or more 'paramName=paramValue' pairs separate by '&'. The component will be returned as a string in the form 'paramName=paramValue' (minus the quotes).

Parameters:
queryString - the URL encoded HTTP URL query string
paramName - the URL decoded name of the parameter to find
Returns:
the found component, or null if query string or param name is null/empty or the parameter is not found

parseQueryString

public static List<Pair<String,String>> parseQueryString(String queryString)
Parses a RFC-3968 encoded query string in to a set of name/value pairs. This method assumes the common query string format of one or more 'paramName=paramValue' pairs separate by '&'. Both parameter names and values will be URL decoded. Parameters without values will be represented in the returned map as a key associated with the value null.

Parameters:
queryString - URL encoded query string
Returns:
the parameters from the query string, never null

trimOrNullPath

public static String trimOrNullPath(String path)
Trims an RFC-3968 encoded URL path component. If the given path is null or empty then null is returned. If the given path ends with '?' then it is removed. If the given path ends with '#' then it is removed.

Parameters:
path - path to trim
Returns:
the trimmed path or null

trimOrNullQuery

public static String trimOrNullQuery(String query)
Trims an RFC-3968 encoded URL query component. If the given query is null or empty then null is returned. If the given query starts with '?' then it is removed. If the given query ends with '#' then it is removed.

Parameters:
query - query to trim
Returns:
the trimmed query or null

trimOrNullFragment

public static String trimOrNullFragment(String fragment)
Trims an RFC-3968 encoded URL fragment component. If the given fragment is null or empty then null is returned. If the given fragment starts with '#' then it is removed.

Parameters:
fragment - fragment to trim
Returns:
the trimmed fragment or null

urlDecode

public static String urlDecode(String value)
URL Decode the given string.

Parameters:
value - the string to decode
Returns:
the decoded string

urlEncode

public static String urlEncode(String value)
URL Encode the given string.

Parameters:
value - the string to encode
Returns:
the encoded string


Copyright © 1999-2012. All Rights Reserved.