Package spark
Class QueryParamsMap
- java.lang.Object
-
- spark.QueryParamsMap
-
- Direct Known Subclasses:
QueryParamsMap.NullQueryParamsMap
public class QueryParamsMap extends java.lang.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
QueryParamsMap.NullQueryParamsMap
-
Field Summary
Fields Modifier and Type Field Description private static java.util.regex.Pattern
KEY_PATTERN
Pattern for parsing the key of querystringprivate static QueryParamsMap
NULL
private java.util.Map<java.lang.String,QueryParamsMap>
queryMap
Holds the nested keysprivate java.lang.String[]
values
Value(s) for this key
-
Constructor Summary
Constructors Modifier Constructor Description protected
QueryParamsMap()
protected
QueryParamsMap(java.lang.String key, java.lang.String... values)
Parses the key and creates the child QueryParamMaps user[info][name] creates 3 nested QueryParamMaps.protected
QueryParamsMap(java.util.Map<java.lang.String,java.lang.String[]> params)
ConstructorQueryParamsMap(javax.servlet.http.HttpServletRequest request)
Creates a new QueryParamsMap from an HttpServletRequest.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Boolean
booleanValue()
protected static java.lang.String
cleanKey(java.lang.String group)
java.lang.Double
doubleValue()
java.lang.Float
floatValue()
QueryParamsMap
get(java.lang.String... keys)
Returns an element from the specified key.(package private) java.util.Map<java.lang.String,QueryParamsMap>
getQueryMap()
(package private) java.lang.String[]
getValues()
boolean
hasKey(java.lang.String key)
boolean
hasKeys()
boolean
hasValue()
java.lang.Integer
integerValue()
protected void
loadKeys(java.lang.String key, java.lang.String[] value)
loads keysprotected void
loadQueryString(java.util.Map<java.lang.String,java.lang.String[]> params)
loads query stringjava.lang.Long
longValue()
protected java.lang.String[]
parseKey(java.lang.String key)
java.util.Map<java.lang.String,java.lang.String[]>
toMap()
java.lang.String
value()
Returns the value for this key.java.lang.String
value(java.lang.String... keys)
Returns the value for that key.java.lang.String[]
values()
-
-
-
Field Detail
-
NULL
private static final QueryParamsMap NULL
-
KEY_PATTERN
private static final java.util.regex.Pattern KEY_PATTERN
Pattern for parsing the key of querystring
-
queryMap
private java.util.Map<java.lang.String,QueryParamsMap> queryMap
Holds the nested keys
-
values
private java.lang.String[] values
Value(s) for this key
-
-
Constructor Detail
-
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(java.lang.String key, java.lang.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(java.util.Map<java.lang.String,java.lang.String[]> params)
Constructor- Parameters:
params
- the parameters
-
-
Method Detail
-
loadQueryString
protected final void loadQueryString(java.util.Map<java.lang.String,java.lang.String[]> params)
loads query string- Parameters:
params
- the parameters
-
loadKeys
protected final void loadKeys(java.lang.String key, java.lang.String[] value)
loads keys- Parameters:
key
- the keyvalue
- the values
-
parseKey
protected final java.lang.String[] parseKey(java.lang.String key)
-
cleanKey
protected static final java.lang.String cleanKey(java.lang.String group)
-
get
public QueryParamsMap get(java.lang.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 java.lang.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 java.lang.String value(java.lang.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(java.lang.String key)
- Returns:
- true if the map contains the given key
-
hasValue
public boolean hasValue()
- Returns:
- has values
-
booleanValue
public java.lang.Boolean booleanValue()
- Returns:
- the boolean value
-
integerValue
public java.lang.Integer integerValue()
- Returns:
- the integer value
-
longValue
public java.lang.Long longValue()
- Returns:
- the long value
-
floatValue
public java.lang.Float floatValue()
- Returns:
- the float value
-
doubleValue
public java.lang.Double doubleValue()
- Returns:
- the double value
-
values
public java.lang.String[] values()
- Returns:
- the values
-
getQueryMap
java.util.Map<java.lang.String,QueryParamsMap> getQueryMap()
- Returns:
- the queryMap
-
getValues
java.lang.String[] getValues()
- Returns:
- the values
-
toMap
public java.util.Map<java.lang.String,java.lang.String[]> toMap()
- Returns:
- Map representation
-
-