in velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LinkTool.java [836:872]
protected Map<String,Object> parseQuery(String query, String queryDelim)
{
if (query.startsWith("?"))
{
query = query.substring(1, query.length());
}
String[] pairs = query.split(queryDelim);
if (pairs.length == 0)
{
return null;
}
Map<String,Object> params = new LinkedHashMap<String,Object>(pairs.length);
for (String pair : pairs)
{
String[] kv = pair.split("=");
String key = kv[0];
Object value = kv.length > 1 ? kv[1] : null;
if (params.containsKey(kv[0]))
{
Object oldval = params.get(key);
if (oldval instanceof List)
{
((List)oldval).add((String)value);
value = oldval;
}
else
{
List<String> list = new ArrayList<String>();
list.add((String)oldval);
list.add((String)value);
value = list;
}
}
params.put(key, value);
}
return params;
}