in velocity-tools-generic/src/main/java/org/apache/velocity/tools/generic/LinkTool.java [460:503]
public void setQuery(Object obj)
{
if (obj == null)
{
this.query = null;
}
else if (obj instanceof Map)
{
this.query = new LinkedHashMap();
for (Map.Entry keyValues : (Set<Map.Entry>)((Map)obj).entrySet())
{
String key = String.valueOf(keyValues.getKey());
Object values = keyValues.getValue();
if (values.getClass().isArray())
{
int size = Array.getLength(values);
switch (size)
{
case 0:
break;
case 1:
this.query.put(key, Array.get(values, 0));
break;
default:
List lst = new ArrayList();
for (int i = 0; i < Array.getLength(values); ++i)
{
lst.add(Array.get(values, i));
}
this.query.put(key, lst);
}
}
else
{
this.query.put(key, values);
}
}
}
else
{
String qs = normalizeQuery(String.valueOf(obj));
this.query = parseQuery(qs);
}
}