public void setQuery()

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);
        }
    }