oauth.signpost.http
Class HttpParameters

java.lang.Object
  extended by oauth.signpost.http.HttpParameters
All Implemented Interfaces:
Serializable, Map<String,SortedSet<String>>

public class HttpParameters
extends Object
implements Map<String,SortedSet<String>>, Serializable

A multi-map of HTTP request parameters. Each key references a SortedSet of parameters collected from the request during message signing. Parameter values are sorted as per ://oauth.net/core/1.0a/#anchor13. Every key/value pair will be percent-encoded upon insertion. This class has special semantics tailored to being useful for message signing; it's not a general purpose collection class to handle request parameters.

Author:
Matthias Kaeppler
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Constructor Summary
HttpParameters()
           
 
Method Summary
 void clear()
           
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
 Set<Map.Entry<String,SortedSet<String>>> entrySet()
           
 SortedSet<String> get(Object key)
           
 String getAsHeaderElement(String key)
           
 String getAsQueryString(Object key)
          Concatenates all values for the given key to a list of key/value pairs suitable for use in a URL query string.
 String getFirst(Object key)
          Convenience method for #getFirst(key, false).
 String getFirst(Object key, boolean percentDecode)
          Returns the first value from the set of all values for the given parameter name.
 boolean isEmpty()
           
 Set<String> keySet()
           
 SortedSet<String> put(String key, SortedSet<String> value)
           
 SortedSet<String> put(String key, SortedSet<String> values, boolean percentEncode)
           
 String put(String key, String value)
          Convenience method to add a single value for the parameter specified by 'key'.
 String put(String key, String value, boolean percentEncode)
          Convenience method to add a single value for the parameter specified by 'key'.
 void putAll(Map<? extends String,? extends SortedSet<String>> m)
           
 void putAll(Map<? extends String,? extends SortedSet<String>> m, boolean percentEncode)
           
 void putAll(String[] keyValuePairs, boolean percentEncode)
           
 void putMap(Map<String,List<String>> m)
          Convenience method to merge a Map>.
 String putNull(String key, String nullString)
          Convenience method to allow for storing null values.
 SortedSet<String> remove(Object key)
           
 int size()
           
 Collection<SortedSet<String>> values()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

HttpParameters

public HttpParameters()
Method Detail

put

public SortedSet<String> put(String key,
                             SortedSet<String> value)
Specified by:
put in interface Map<String,SortedSet<String>>

put

public SortedSet<String> put(String key,
                             SortedSet<String> values,
                             boolean percentEncode)

put

public String put(String key,
                  String value)
Convenience method to add a single value for the parameter specified by 'key'.

Parameters:
key - the parameter name
value - the parameter value
Returns:
the value

put

public String put(String key,
                  String value,
                  boolean percentEncode)
Convenience method to add a single value for the parameter specified by 'key'.

Parameters:
key - the parameter name
value - the parameter value
percentEncode - whether key and value should be percent encoded before being inserted into the map
Returns:
the value

putNull

public String putNull(String key,
                      String nullString)
Convenience method to allow for storing null values. put(java.lang.String, java.util.SortedSet) doesn't allow null values, because that would be ambiguous.

Parameters:
key - the parameter name
nullString - can be anything, but probably... null?
Returns:
null

putAll

public void putAll(Map<? extends String,? extends SortedSet<String>> m)
Specified by:
putAll in interface Map<String,SortedSet<String>>

putAll

public void putAll(Map<? extends String,? extends SortedSet<String>> m,
                   boolean percentEncode)

putAll

public void putAll(String[] keyValuePairs,
                   boolean percentEncode)

putMap

public void putMap(Map<String,List<String>> m)
Convenience method to merge a Map>.

Parameters:
m - the map

get

public SortedSet<String> get(Object key)
Specified by:
get in interface Map<String,SortedSet<String>>

getFirst

public String getFirst(Object key)
Convenience method for #getFirst(key, false).

Parameters:
key - the parameter name (must be percent encoded if it contains unsafe characters!)
Returns:
the first value found for this parameter

getFirst

public String getFirst(Object key,
                       boolean percentDecode)
Returns the first value from the set of all values for the given parameter name. If the key passed to this method contains special characters, you MUST first percent encode it using OAuth.percentEncode(String), otherwise the lookup will fail (that's because upon storing values in this map, keys get percent-encoded).

Parameters:
key - the parameter name (must be percent encoded if it contains unsafe characters!)
percentDecode - whether the value being retrieved should be percent decoded
Returns:
the first value found for this parameter

getAsQueryString

public String getAsQueryString(Object key)
Concatenates all values for the given key to a list of key/value pairs suitable for use in a URL query string.

Parameters:
key - the parameter name
Returns:
the query string

getAsHeaderElement

public String getAsHeaderElement(String key)

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Map<String,SortedSet<String>>

containsValue

public boolean containsValue(Object value)
Specified by:
containsValue in interface Map<String,SortedSet<String>>

size

public int size()
Specified by:
size in interface Map<String,SortedSet<String>>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map<String,SortedSet<String>>

clear

public void clear()
Specified by:
clear in interface Map<String,SortedSet<String>>

remove

public SortedSet<String> remove(Object key)
Specified by:
remove in interface Map<String,SortedSet<String>>

keySet

public Set<String> keySet()
Specified by:
keySet in interface Map<String,SortedSet<String>>

values

public Collection<SortedSet<String>> values()
Specified by:
values in interface Map<String,SortedSet<String>>

entrySet

public Set<Map.Entry<String,SortedSet<String>>> entrySet()
Specified by:
entrySet in interface Map<String,SortedSet<String>>


Copyright © 2010. All Rights Reserved.