Class HttpParameters

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>

    public class HttpParameters
    extends java.lang.Object
    implements java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>, java.io.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.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.TreeMap<java.lang.String,​java.util.SortedSet<java.lang.String>> wrappedMap  
    • Constructor Summary

      Constructors 
      Constructor Description
      HttpParameters()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()  
      boolean containsKey​(java.lang.Object key)  
      boolean containsValue​(java.lang.Object value)  
      java.util.Set<java.util.Map.Entry<java.lang.String,​java.util.SortedSet<java.lang.String>>> entrySet()  
      java.util.SortedSet<java.lang.String> get​(java.lang.Object key)  
      java.lang.String getAsHeaderElement​(java.lang.String key)  
      java.lang.String getAsQueryString​(java.lang.Object key)
      Concatenates all values for the given key to a list of key/value pairs suitable for use in a URL query string.
      java.lang.String getAsQueryString​(java.lang.Object key, boolean percentEncode)
      Concatenates all values for the given key to a list of key/value pairs suitable for use in a URL query string.
      java.lang.String getFirst​(java.lang.Object key)
      Convenience method for {@link #getFirst(key, false)}.
      java.lang.String getFirst​(java.lang.Object key, boolean percentDecode)
      Returns the first value from the set of all values for the given parameter name.
      HttpParameters getOAuthParameters()  
      boolean isEmpty()  
      java.util.Set<java.lang.String> keySet()  
      java.lang.String put​(java.lang.String key, java.lang.String value)
      Convenience method to add a single value for the parameter specified by 'key'.
      java.lang.String put​(java.lang.String key, java.lang.String value, boolean percentEncode)
      Convenience method to add a single value for the parameter specified by 'key'.
      java.util.SortedSet<java.lang.String> put​(java.lang.String key, java.util.SortedSet<java.lang.String> value)  
      java.util.SortedSet<java.lang.String> put​(java.lang.String key, java.util.SortedSet<java.lang.String> values, boolean percentEncode)  
      void putAll​(java.lang.String[] keyValuePairs, boolean percentEncode)  
      void putAll​(java.util.Map<? extends java.lang.String,​? extends java.util.SortedSet<java.lang.String>> m)  
      void putAll​(java.util.Map<? extends java.lang.String,​? extends java.util.SortedSet<java.lang.String>> m, boolean percentEncode)  
      void putMap​(java.util.Map<java.lang.String,​java.util.List<java.lang.String>> m)
      Convenience method to merge a Map>.
      java.lang.String putNull​(java.lang.String key, java.lang.String nullString)
      Convenience method to allow for storing null values.
      java.util.SortedSet<java.lang.String> remove​(java.lang.Object key)  
      int size()  
      java.util.Collection<java.util.SortedSet<java.lang.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

        compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Field Detail

      • wrappedMap

        private java.util.TreeMap<java.lang.String,​java.util.SortedSet<java.lang.String>> wrappedMap
    • Constructor Detail

      • HttpParameters

        public HttpParameters()
    • Method Detail

      • put

        public java.util.SortedSet<java.lang.String> put​(java.lang.String key,
                                                         java.util.SortedSet<java.lang.String> value)
        Specified by:
        put in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • put

        public java.util.SortedSet<java.lang.String> put​(java.lang.String key,
                                                         java.util.SortedSet<java.lang.String> values,
                                                         boolean percentEncode)
      • put

        public java.lang.String put​(java.lang.String key,
                                    java.lang.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 java.lang.String put​(java.lang.String key,
                                    java.lang.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 java.lang.String putNull​(java.lang.String key,
                                        java.lang.String nullString)
        Convenience method to allow for storing null values. put(java.lang.String, java.util.SortedSet<java.lang.String>) 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​(java.util.Map<? extends java.lang.String,​? extends java.util.SortedSet<java.lang.String>> m)
        Specified by:
        putAll in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • putAll

        public void putAll​(java.util.Map<? extends java.lang.String,​? extends java.util.SortedSet<java.lang.String>> m,
                           boolean percentEncode)
      • putAll

        public void putAll​(java.lang.String[] keyValuePairs,
                           boolean percentEncode)
      • putMap

        public void putMap​(java.util.Map<java.lang.String,​java.util.List<java.lang.String>> m)
        Convenience method to merge a Map>.
        Parameters:
        m - the map
      • get

        public java.util.SortedSet<java.lang.String> get​(java.lang.Object key)
        Specified by:
        get in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • getFirst

        public java.lang.String getFirst​(java.lang.Object key)
        Convenience method for {@link #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 java.lang.String getFirst​(java.lang.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 java.lang.String getAsQueryString​(java.lang.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
      • getAsQueryString

        public java.lang.String getAsQueryString​(java.lang.Object key,
                                                 boolean percentEncode)
        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
        percentEncode - whether key should be percent encoded before being used with the map
        Returns:
        the query string
      • getAsHeaderElement

        public java.lang.String getAsHeaderElement​(java.lang.String key)
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • containsValue

        public boolean containsValue​(java.lang.Object value)
        Specified by:
        containsValue in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • size

        public int size()
        Specified by:
        size in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • remove

        public java.util.SortedSet<java.lang.String> remove​(java.lang.Object key)
        Specified by:
        remove in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • keySet

        public java.util.Set<java.lang.String> keySet()
        Specified by:
        keySet in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • values

        public java.util.Collection<java.util.SortedSet<java.lang.String>> values()
        Specified by:
        values in interface java.util.Map<java.lang.String,​java.util.SortedSet<java.lang.String>>
      • entrySet

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