Package spark
Class QueryParamsMap
- java.lang.Object
-
- spark.QueryParamsMap
-
- Direct Known Subclasses:
QueryParamsMap.NullQueryParamsMap
public class QueryParamsMap extends java.lang.ObjectThese 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 classQueryParamsMap.NullQueryParamsMap
-
Field Summary
Fields Modifier and Type Field Description private static java.util.regex.PatternKEY_PATTERNPattern for parsing the key of querystringprivate static QueryParamsMapNULLprivate java.util.Map<java.lang.String,QueryParamsMap>queryMapHolds the nested keysprivate java.lang.String[]valuesValue(s) for this key
-
Constructor Summary
Constructors Modifier Constructor Description protectedQueryParamsMap()protectedQueryParamsMap(java.lang.String key, java.lang.String... values)Parses the key and creates the child QueryParamMaps user[info][name] creates 3 nested QueryParamMaps.protectedQueryParamsMap(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.BooleanbooleanValue()protected static java.lang.StringcleanKey(java.lang.String group)java.lang.DoubledoubleValue()java.lang.FloatfloatValue()QueryParamsMapget(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()booleanhasKey(java.lang.String key)booleanhasKeys()booleanhasValue()java.lang.IntegerintegerValue()protected voidloadKeys(java.lang.String key, java.lang.String[] value)loads keysprotected voidloadQueryString(java.util.Map<java.lang.String,java.lang.String[]> params)loads query stringjava.lang.LonglongValue()protected java.lang.String[]parseKey(java.lang.String key)java.util.Map<java.lang.String,java.lang.String[]>toMap()java.lang.Stringvalue()Returns the value for this key.java.lang.Stringvalue(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
-
-