protected String mergeQueryStrings()

in velocity-tools-view/src/main/java/org/apache/velocity/tools/view/ViewImportSupport.java [536:576]


    protected String mergeQueryStrings(String url)
    {
        Map<String, String[]> originalParameters = request.getParameterMap();
        if (originalParameters.size() > 0)
        {
            StringBuilder builder = new StringBuilder(url);
            Set<String> newParameterNames = new HashSet<String>();
            int qm = url.indexOf('?');
            if (qm != -1)
            {

                String[] newParameters = url.substring(qm + 1).split("&");
                for (String newParam : newParameters)
                {
                    int eq = newParam.indexOf('=');
                    if (eq != -1)
                    {
                        newParam = newParam.substring(eq);
                    }
                    newParameterNames.add(newParam);
                }
            }
            char separator = ( qm == -1 ? '?' : '&' );
            for (Map.Entry<String, String[]> entry : originalParameters.entrySet())
            {
                String key = entry.getKey();
                if (!newParameterNames.contains(key))
                {
                    key = URLEncoder.encode(key);
                    for (String value : entry.getValue())
                    {
                        builder.append(separator);
                        separator = '&';
                        builder.append(key).append('=').append(URLEncoder.encode(value));
                    }
                }
            }
            url = builder.toString();
        }
        return url;
    }