protected void addImpl(Headers<? extends K, ? extends V, ?> headers) { if (headers instanceof DefaultHeaders) { @SuppressWarnings("unchecked") final DefaultHeaders<? extends K, ? extends V, T> defaultHeaders = (DefaultHeaders<? extends K, ? extends V, T>) headers; HeaderEntry<? extends K, ? extends V> e = defaultHeaders.head.after; if (defaultHeaders.hashingStrategy == hashingStrategy && defaultHeaders.nameValidator == nameValidator) { // Fastest copy while (e != defaultHeaders.head) { add0(e.hash, index(e.hash), e.key, e.value); e = e.after; } } else { // Fast copy while (e != defaultHeaders.head) { add(e.key, e.value); e = e.after; } } } else { // Slow copy for (Entry<? extends K, ? extends V> header : headers) { add(header.getKey(), header.getValue()); } } }
@Override public T add(K name, V... values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); for (V v: values) { add0(h, i, name, v); } return thisT(); }
@Override public T add(K name, Iterable<? extends V> values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); for (V v: values) { add0(h, i, name, v); } return thisT(); }
@Override public T add(K name, Iterable<? extends V> values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); for (V v: values) { add0(h, i, name, v); } return thisT(); }
@Override public T add(K name, V... values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); for (V v: values) { add0(h, i, name, v); } return thisT(); }
@Override public T add(K name, V value) { nameValidator.validateName(name); checkNotNull(value, "value"); int h = hashingStrategy.hashCode(name); int i = index(h); add0(h, i, name, value); return thisT(); }
@Override public T set(K name, V value) { nameValidator.validateName(name); checkNotNull(value, "value"); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); add0(h, i, name, value); return thisT(); }
@Override public T add(K name, V... values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); for (V v: values) { add0(h, i, name, v); } return thisT(); }
@Override public T add(K name, V value) { nameValidator.validateName(name); checkNotNull(value, "value"); int h = hashingStrategy.hashCode(name); int i = index(h); add0(h, i, name, value); return thisT(); }
@Override public T add(K name, Iterable<? extends V> values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); for (V v: values) { add0(h, i, name, v); } return thisT(); }
@Override public T setObject(K name, Iterable<?> values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (Object v: values) { if (v == null) { break; } add0(h, i, name, valueConverter.convertObject(v)); } return thisT(); }
@Override public T setObject(K name, Object... values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (Object v: values) { if (v == null) { break; } add0(h, i, name, valueConverter.convertObject(v)); } return thisT(); }
@Override public T set(K name, V... values) { nameValidator.validateName(name); checkNotNull(values, "values"); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (V v: values) { if (v == null) { break; } add0(h, i, name, v); } return thisT(); }
@Override public T set(K name, Iterable<? extends V> values) { nameValidator.validateName(name); checkNotNull(values, "values"); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (V v: values) { if (v == null) { break; } add0(h, i, name, v); } return thisT(); }
@Override public T set(K name, V value) { nameValidator.validateName(name); checkNotNull(value, "value"); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); add0(h, i, name, value); return thisT(); }
@Override public T setObject(K name, Object... values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (Object v: values) { if (v == null) { break; } add0(h, i, name, valueConverter.convertObject(v)); } return thisT(); }
@Override public T set(K name, V... values) { nameValidator.validateName(name); checkNotNull(values, "values"); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (V v: values) { if (v == null) { break; } add0(h, i, name, v); } return thisT(); }
@Override public T setObject(K name, Iterable<?> values) { nameValidator.validateName(name); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (Object v: values) { if (v == null) { break; } add0(h, i, name, valueConverter.convertObject(v)); } return thisT(); }
@Override public T set(K name, Iterable<? extends V> values) { nameValidator.validateName(name); checkNotNull(values, "values"); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); for (V v: values) { if (v == null) { break; } add0(h, i, name, v); } return thisT(); }
@Override public T set(K name, V value) { nameValidator.validateName(name); checkNotNull(value, "value"); int h = hashingStrategy.hashCode(name); int i = index(h); remove0(h, i, name); add0(h, i, name, value); return thisT(); }