Package spark

Class QueryParamsMap

java.lang.Object
spark.QueryParamsMap
Direct Known Subclasses:
QueryParamsMap.NullQueryParamsMap

public class QueryParamsMap extends Object
These objects represent the parameters sent on a Http Request.
Parses parameters keys like in Sinatra.

For a querystring like:
user[name]=federico&user[lastname]=dayan

We get a structure like:
user : {name: federico, lastname: dayan}

That is:
queryParamsMapInstance.get("user").get("name").value();
queryParamsMapInstance.get("user").get("lastname").value();

It is null safe, meaning that if a key does not exist, it does not throw NullPointerException, it just returns null.
  • Field Details

    • NULL

      private static final QueryParamsMap NULL
    • KEY_PATTERN

      private static final Pattern KEY_PATTERN
      Pattern for parsing the key of querystring
    • queryMap

      private Map<String,QueryParamsMap> queryMap
      Holds the nested keys
    • values

      private String[] values
      Value(s) for this key
  • Constructor Details

    • QueryParamsMap

      public QueryParamsMap(javax.servlet.http.HttpServletRequest request)
      Creates a new QueryParamsMap from an HttpServletRequest.
      Parses the parameters from request.getParameterMap()
      No need to decode, since HttpServletRequest does it for us.
      Parameters:
      request - the servlet request
    • QueryParamsMap

      protected QueryParamsMap()
    • QueryParamsMap

      protected QueryParamsMap(String key, String... values)
      Parses the key and creates the child QueryParamMaps user[info][name] creates 3 nested QueryParamMaps. For user, info and name.
      Parameters:
      key - The key in the formar fo key1[key2][key3] (for example: user[info][name]).
      values - the values
    • QueryParamsMap

      protected QueryParamsMap(Map<String,String[]> params)
      Constructor
      Parameters:
      params - the parameters
  • Method Details

    • loadQueryString

      protected final void loadQueryString(Map<String,String[]> params)
      loads query string
      Parameters:
      params - the parameters
    • loadKeys

      protected final void loadKeys(String key, String[] value)
      loads keys
      Parameters:
      key - the key
      value - the values
    • parseKey

      protected final String[] parseKey(String key)
    • cleanKey

      protected static final String cleanKey(String group)
    • get

      public QueryParamsMap get(String... keys)
      Returns an element from the specified key.
      For querystring:

      user[name]=fede

      get("user").get("name").value() # fede
      or
      get("user","name").value() # fede
      Parameters:
      keys - The parameter nested key(s)
      Returns:
      the query params map
    • value

      public String value()
      Returns the value for this key.
      If this key has nested elements and does not have a value returns null.
      Returns:
      the value
    • value

      public String value(String... keys)
      Returns the value for that key.
      It is a shortcut for:

      get("user").get("name").value() get("user").value("name")
      Parameters:
      keys - the key(s)
      Returns:
      the value
    • hasKeys

      public boolean hasKeys()
      Returns:
      has keys
    • hasKey

      public boolean hasKey(String key)
      Returns:
      true if the map contains the given key
    • hasValue

      public boolean hasValue()
      Returns:
      has values
    • booleanValue

      public Boolean booleanValue()
      Returns:
      the boolean value
    • integerValue

      public Integer integerValue()
      Returns:
      the integer value
    • longValue

      public Long longValue()
      Returns:
      the long value
    • floatValue

      public Float floatValue()
      Returns:
      the float value
    • doubleValue

      public Double doubleValue()
      Returns:
      the double value
    • values

      public String[] values()
      Returns:
      the values
    • getQueryMap

      Map<String,QueryParamsMap> getQueryMap()
      Returns:
      the queryMap
    • getValues

      String[] getValues()
      Returns:
      the values
    • toMap

      public Map<String,String[]> toMap()
      Returns:
      Map representation