@Override public int delete(KeyMatcher keyMatcher) { KeyValuePairCollection pairs = getAll(keyMatcher); int counter = 0; for (KeyValuePair pair : pairs) { m_pairs.remove(pair); counter++; } return counter; }
@SuppressWarnings("unchecked") protected void initHeaders(HttpServletRequest request) { m_headers = new OrderedKeyValuePairCollection(); Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = (String) headerNames.nextElement(); Enumeration<String> headerValues = request.getHeaders(headerName); while (headerValues.hasMoreElements()) { KeyValuePair pair = new KeyValuePair(headerName, headerValues.nextElement()); m_headers.add(pair); } } }
private KeyValuePairCollection parseFormParametersFromQueryString(String queryString) { KeyValuePairCollection formParameters = new OrderedKeyValuePairCollection(); Pattern kvpPattern = Pattern.compile("[^?\\&\\s]+"); Matcher kvpMatcher = kvpPattern.matcher(queryString); while (kvpMatcher.find()) { String kvpChunk = kvpMatcher.group(); String key; String value = ""; int indexOfEqualsSign = kvpChunk.indexOf('='); if (indexOfEqualsSign == -1) { key = kvpChunk; } else { key = kvpChunk.substring(0, indexOfEqualsSign); value = kvpChunk.substring(indexOfEqualsSign + 1); } try { key = URLDecoder.decode(key, "utf-8"); value = URLDecoder.decode(value, "utf-8"); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException("Could not url-decode servicerequest parameters", e); } KeyValuePair keyValuePair = new KeyValuePair(key, value); formParameters.add(keyValuePair); } return formParameters; }
public KeyValuePairCollection getAll(KeyMatcher keyMatcher) { KeyValuePairCollection pairsPerKey = new OrderedKeyValuePairCollection(); for (KeyValuePair kvp : m_pairs) { if (keyMatcher.matches(kvp.getKey())) { pairsPerKey.add(kvp); } } return pairsPerKey; }
public Collection<String> values(KeyMatcher key) { Collection<String> values = new ArrayList<String>(); for (KeyValuePair pair : getAll(key)) { values.add(pair.getValue()); } return values; }
@Override public boolean containsKey(KeyMatcher key) { return getAll(key).size() > 0; }
public KeyValuePair getUnique(KeyMatcher keyMatcher) throws NonUniqueException { KeyValuePairCollection possiblyNonUniquePairs = getAll(keyMatcher); if (possiblyNonUniquePairs.size() == 0) { return null; } if (possiblyNonUniquePairs.size() > 1) { throw new NonUniqueException("Multiple matching KeyValuePairs found for key <" + keyMatcher + ">."); } return possiblyNonUniquePairs.iterator().next(); }