@Override public int size() { return headers.size(); } };
@Override public boolean containsKey(Object key) { if (key instanceof String) { return (this.headers.findHeader((String) key, 0) != -1); } return false; }
@Override public void clear() { this.headers.clear(); }
@Override @Nullable public List<String> put(String key, List<String> value) { List<String> previousValues = get(key); this.headers.removeHeader(key); value.forEach(v -> this.headers.addValue(key).setString(v)); return previousValues; }
@Override public void add(String key, @Nullable String value) { this.headers.addValue(key).setString(value); }
@Override public String getFirst(String key) { return this.headers.getHeader(key); }
@Override public int size() { Enumeration<String> names = this.headers.names(); int size = 0; while (names.hasMoreElements()) { size++; names.nextElement(); } return size; }
@Override @Nullable public List<String> remove(Object key) { if (key instanceof String) { List<String> previousValues = get(key); this.headers.removeHeader((String) key); return previousValues; } return null; }
@Override public void set(String key, @Nullable String value) { this.headers.setValue(key).setString(value); }
@Override @Nullable public List<String> get(Object key) { if (containsKey(key)) { return Collections.list(this.headers.values((String) key)); } return null; }
@Override public boolean isEmpty() { return (this.headers.size() == 0); }
@Override public String getFirst(String key) { return this.headers.getHeader(key); }
@Override public Set<String> keySet() { Set<String> result = new HashSet<>(8); Enumeration<String> names = this.headers.names(); while (names.hasMoreElements()) { result.add(names.nextElement()); } return result; }
@Nullable @Override public List<String> setValue(List<String> value) { List<String> previous = getValue(); headers.removeHeader(this.key); addAll(this.key, value); return previous; } }
@Override public void clear() { this.headers.clear(); }
@Override public boolean containsKey(Object key) { if (key instanceof String) { return (this.headers.findHeader((String) key, 0) != -1); } return false; }
@Override public int size() { return headers.size(); } };
@Override public boolean isEmpty() { return (this.headers.size() == 0); }
@Override public Map<String, String> toSingleValueMap() { Map<String, String> singleValueMap = new LinkedHashMap<>(this.headers.size()); this.keySet().forEach(key -> singleValueMap.put(key, getFirst(key))); return singleValueMap; }