@Override @SuppressWarnings("unchecked") public void addAll(String key, List<? extends String> values) { this.headers.addAll(HttpString.tryFromString(key), (List<String>) values); }
@Override public int size() { return headers.size(); } };
@Override public void set(String key, @Nullable String value) { this.headers.put(HttpString.tryFromString(key), value); }
private static HttpHeaders toHttpHeaders(HeaderMap headerMap) { HttpHeaders httpHeaders = new HttpHeaders(); for (HttpString name : headerMap.getHeaderNames()) { for (String value : headerMap.get(name)) { httpHeaders.add(name.toString(), value); } } return httpHeaders; }
@Override public Map<String, String> toSingleValueMap() { Map<String, String> singleValueMap = new LinkedHashMap<>(this.headers.size()); this.headers.forEach(values -> singleValueMap.put(values.getHeaderName().toString(), values.getFirst())); return singleValueMap; }
@Override @Nullable public List<String> put(String key, List<String> value) { HeaderValues previousValues = this.headers.get(key); this.headers.putAll(HttpString.tryFromString(key), value); return previousValues; }
@Override public void add(String key, @Nullable String value) { this.headers.add(HttpString.tryFromString(key), value); }
@Override public String getFirst(String key) { return this.headers.getFirst(key); }
@Override public List<String> getValue() { return headers.get(this.key); }
@Override public String getKey() { return this.key.toString(); }
@Override public void putAll(Map<? extends String, ? extends List<String>> map) { map.forEach((key, values) -> this.headers.putAll(HttpString.tryFromString(key), values)); }
@Override public boolean containsKey(Object key) { return (key instanceof String && this.headers.contains((String) key)); }
@Override public boolean containsValue(Object value) { return (value instanceof String && this.headers.getHeaderNames().stream() .map(this.headers::get) .anyMatch(values -> values.contains(value))); }
@Override public void clear() { this.headers.clear(); }
@Override public void setAll(Map<String, String> values) { values.forEach((key, list) -> this.headers.put(HttpString.tryFromString(key), list)); }
private static void addHttpHeaders(ClientRequest request, HttpHeaders headers) { HeaderMap headerMap = request.getRequestHeaders(); headers.forEach((key, values) -> { for (String value : values) { headerMap.add(HttpString.tryFromString(key), value); } }); }
@Override public void addAll(MultiValueMap<String, String> values) { values.forEach((key, list) -> this.headers.addAll(HttpString.tryFromString(key), list)); }
@Override public boolean isEmpty() { return (this.headers.size() == 0); }
@Override public int size() { return this.headers.size(); }