1 package org.onap.nbi.commons;
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.HashSet;
7 import java.util.Map.Entry;
9 import org.springframework.util.LinkedMultiValueMap;
10 import org.springframework.util.MultiValueMap;
15 public class QueryParserUtils {
17 private QueryParserUtils() {}
21 * @param queryParameters
24 public static Set<String> getFields(MultiValueMap<String, String> queryParameters) {
26 Set<String> fieldSet = new HashSet<>();
27 if (queryParameters != null) {
28 // search for "all" parameter
29 if (queryParameters.containsKey(ReservedKeys.ALL_FIELDS)) {
30 queryParameters.remove(ReservedKeys.ALL_FIELDS);
31 fieldSet.add(ReservedKeys.ALL_FIELDS);
33 // search for "fields" parameters
34 List<String> queryParameterField =
35 queryParameters.remove(ReservedKeys.QUERY_KEY_FIELD_ESCAPE + ReservedKeys.QUERY_KEY_FIELD);
36 if (queryParameterField == null) {
37 queryParameterField = queryParameters.remove(ReservedKeys.QUERY_KEY_FIELD);
39 if (queryParameterField != null && !queryParameterField.isEmpty()) {
40 String queryParameterValue = queryParameterField.get(0);
41 if (queryParameterValue != null) {
42 String[] tokenArray = queryParameterValue.split(",");
43 fieldSet.addAll(Arrays.asList(tokenArray));
50 public static MultiValueMap<String, String> popCriteria(MultiValueMap<String, String> queryParameters) {
52 Set<Entry<String, List<String>>> entrySet = queryParameters.entrySet();
54 MultiValueMap<String, String> criterias = new LinkedMultiValueMap<String, String>();
56 entrySet.stream().forEach(entry -> {
57 final List<String> tempValues = new ArrayList<String>();
58 entry.getValue().stream().forEach(value -> tempValues.addAll(Arrays.asList(value.split(","))));
59 criterias.put(entry.getKey(), tempValues);