
org.rootservices.otter.QueryStringToMap Maven / Gradle / Ivy
package org.rootservices.otter;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
public class QueryStringToMap {
private static final String DELIMITER = "&";
private static final String ASSIGNMENT = "=";
public Map> run(Optional queryString) throws UnsupportedEncodingException {
Map> parameters = new HashMap>();
if ( queryString.isPresent() && !queryString.get().isEmpty()) {
String decoded = URLDecoder.decode(queryString.get(), StandardCharsets.UTF_8.name());
String[] parts = decoded.split(DELIMITER);
for (String part : parts) {
String[] nameAndValue = part.split(ASSIGNMENT);
List items;
if (parameters.containsKey(nameAndValue[0])) {
items = parameters.get(nameAndValue[0]);
} else {
items = new ArrayList<>();
}
if (nameAndValue.length == 2) {
items.add(nameAndValue[1]);
}
parameters.put(nameAndValue[0], items);
}
}
return parameters;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy