@Override public HttpHeaders remove(final String name) { if (name == null) { throw new NullPointerException("name"); } int h = hash(name, false); int i = index(h); remove0(h, i, name); return this; }
@Override public List<String> getAll(final String name) { if (name == null) { throw new NullPointerException("name"); } LinkedList<String> values = new LinkedList<String>(); int h = hash(name, false); int i = index(h); HeaderEntry e = entries[i]; while (e != null) { if (e.hash == h && eq(name, e.key)) { values.addFirst(e.value); } e = e.next; } return values; }
@Override public boolean contains(String name, String value, boolean ignoreCaseValue) { if (name == null) { throw new NullPointerException("name"); } int h = hash(name, false); int i = index(h); HeaderEntry e = entries[i]; while (e != null) { if (e.hash == h && eq(name, e.key)) { if (ignoreCaseValue) { if (e.value.equalsIgnoreCase(value)) { return true; } } else { if (e.value.equals(value)) { return true; } } } e = e.next; } return false; }
private String get(final String name, boolean last) { if (name == null) { throw new NullPointerException("name"); } int h = hash(name, false); int i = index(h); HeaderEntry e = entries[i]; String value = null; // loop until the first header was found while (e != null) { if (e.hash == h && eq(name, e.key)) { value = e.value; if (last) { break; } } e = e.next; } return value; }
@Override public HttpHeaders add(final String name, final Object value) { String strVal = toString(value); boolean validateName = false; if (validate) { validateHeaderValue0(strVal); validateName = !KNOWN_NAMES.contains(name); } int h = hash(name, validateName); int i = index(h); add0(h, i, name, strVal); return this; }
@Override public HttpHeaders add(String name, Iterable<?> values) { boolean validateName = false; if (validate) { validateName = !KNOWN_NAMES.contains(name); } int h = hash(name, validateName); int i = index(h); for (Object v: values) { String vstr = toString(v); if (validate) { validateHeaderValue0(vstr); } add0(h, i, name, vstr); } return this; }
@Override public HttpHeaders set(final String name, final Object value) { String strVal = toString(value); boolean validateName = false; if (validate) { validateHeaderValue0(strVal); validateName = !KNOWN_NAMES.contains(name); } int h = hash(name, validateName); int i = index(h); remove0(h, i, name); add0(h, i, name, strVal); return this; }
@Override public HttpHeaders set(final String name, final Iterable<?> values) { if (values == null) { throw new NullPointerException("values"); } boolean validateName = false; if (validate) { validateName = !KNOWN_NAMES.contains(name); } int h = hash(name, validateName); int i = index(h); remove0(h, i, name); for (Object v: values) { if (v == null) { break; } String strVal = toString(v); if (validate) { validateHeaderValue0(strVal); } add0(h, i, name, strVal); } return this; }