@Override public List<V> getAllAndRemove(K name) { List<V> all = getAll(name); remove(name); return all; }
@Override public List<V> getAllAndRemove(K name) { List<V> all = getAll(name); remove(name); return all; }
@Override public List<CharSequence> getAll(CharSequence name) { List<CharSequence> values = super.getAll(name); if (values.isEmpty()) { return values; } if (values.size() != 1) { throw new IllegalStateException("CombinedHttpHeaders should only have one value"); } return unescapeCsvFields(values.get(0)); }
@Override public List<V> getAllAndRemove(K name) { List<V> all = getAll(name); remove(name); return all; }
/** * Generate a hash code for this object given a {@link HashingStrategy} to generate hash codes for * individual values. * @param valueHashingStrategy Defines how values will be hashed. */ public final int hashCode(HashingStrategy<V> valueHashingStrategy) { int result = HASH_CODE_SEED; for (K name : names()) { result = 31 * result + hashingStrategy.hashCode(name); List<V> values = getAll(name); for (int i = 0; i < values.size(); ++i) { result = 31 * result + valueHashingStrategy.hashCode(values.get(i)); } } return result; }
/** * Generate a hash code for this object given a {@link HashingStrategy} to generate hash codes for * individual values. * @param valueHashingStrategy Defines how values will be hashed. */ public final int hashCode(HashingStrategy<V> valueHashingStrategy) { int result = HASH_CODE_SEED; for (K name : names()) { result = 31 * result + hashingStrategy.hashCode(name); List<V> values = getAll(name); for (int i = 0; i < values.size(); ++i) { result = 31 * result + valueHashingStrategy.hashCode(values.get(i)); } } return result; }
/** * Test this object for equality against {@code h2}. * @param h2 The object to check equality for. * @param valueHashingStrategy Defines how values will be compared for equality. * @return {@code true} if this object equals {@code h2} given {@code valueHashingStrategy}. * {@code false} otherwise. */ public final boolean equals(Headers<K, V, ?> h2, HashingStrategy<V> valueHashingStrategy) { if (h2.size() != size()) { return false; } if (this == h2) { return true; } for (K name : names()) { List<V> otherValues = h2.getAll(name); List<V> values = getAll(name); if (otherValues.size() != values.size()) { return false; } for (int i = 0; i < otherValues.size(); i++) { if (!valueHashingStrategy.equals(otherValues.get(i), values.get(i))) { return false; } } } return true; }
/** * Generate a hash code for this object given a {@link HashingStrategy} to generate hash codes for * individual values. * @param valueHashingStrategy Defines how values will be hashed. */ public final int hashCode(HashingStrategy<V> valueHashingStrategy) { int result = HASH_CODE_SEED; for (K name : names()) { result = 31 * result + hashingStrategy.hashCode(name); List<V> values = getAll(name); for (int i = 0; i < values.size(); ++i) { result = 31 * result + valueHashingStrategy.hashCode(values.get(i)); } } return result; }
/** * Test this object for equality against {@code h2}. * @param h2 The object to check equality for. * @param valueHashingStrategy Defines how values will be compared for equality. * @return {@code true} if this object equals {@code h2} given {@code valueHashingStrategy}. * {@code false} otherwise. */ public final boolean equals(Headers<K, V, ?> h2, HashingStrategy<V> valueHashingStrategy) { if (h2.size() != size()) { return false; } if (this == h2) { return true; } for (K name : names()) { List<V> otherValues = h2.getAll(name); List<V> values = getAll(name); if (otherValues.size() != values.size()) { return false; } for (int i = 0; i < otherValues.size(); i++) { if (!valueHashingStrategy.equals(otherValues.get(i), values.get(i))) { return false; } } } return true; }
/** * Test this object for equality against {@code h2}. * @param h2 The object to check equality for. * @param valueHashingStrategy Defines how values will be compared for equality. * @return {@code true} if this object equals {@code h2} given {@code valueHashingStrategy}. * {@code false} otherwise. */ public final boolean equals(Headers<K, V, ?> h2, HashingStrategy<V> valueHashingStrategy) { if (h2.size() != size()) { return false; } if (this == h2) { return true; } for (K name : names()) { List<V> otherValues = h2.getAll(name); List<V> values = getAll(name); if (otherValues.size() != values.size()) { return false; } for (int i = 0; i < otherValues.size(); i++) { if (!valueHashingStrategy.equals(otherValues.get(i), values.get(i))) { return false; } } } return true; }
@Override public List<V> getAllAndRemove(K name) { List<V> all = getAll(name); remove(name); return all; }
@Override public List<V> getAllAndRemove(K name) { List<V> all = getAll(name); remove(name); return all; }
@Override public List<V> getAllAndRemove(K name) { List<V> all = getAll(name); remove(name); return all; }
@Override public List<CharSequence> getAll(CharSequence name) { List<CharSequence> values = super.getAll(name); if (values.isEmpty()) { return values; } if (values.size() != 1) { throw new IllegalStateException("CombinedHttpHeaders should only have one value"); } return unescapeCsvFields(values.get(0)); }
@Override public List<V> getAllAndRemove(K name) { List<V> all = getAll(name); remove(name); return all; }
@Override public List<CharSequence> getAll(CharSequence name) { List<CharSequence> values = super.getAll(name); if (values.isEmpty()) { return values; } if (values.size() != 1) { throw new IllegalStateException("CombinedHttpHeaders should only have one value"); } return unescapeCsvFields(values.get(0)); }
@Override public List<CharSequence> getAll(CharSequence name) { List<CharSequence> values = super.getAll(name); if (values.isEmpty()) { return values; } if (values.size() != 1) { throw new IllegalStateException("CombinedHttpHeaders should only have one value"); } return unescapeCsvFields(values.get(0)); }
@Override public List<CharSequence> getAll(CharSequence name) { List<CharSequence> values = super.getAll(name); if (values.isEmpty() || cannotBeCombined(name)) { return values; } if (values.size() != 1) { throw new IllegalStateException("CombinedHttpHeaders should only have one value"); } return unescapeCsvFields(values.get(0)); }
/** * Generate a hash code for this object given a {@link HashingStrategy} to generate hash codes for * individual values. * @param valueHashingStrategy Defines how values will be hashed. */ public final int hashCode(HashingStrategy<V> valueHashingStrategy) { int result = HASH_CODE_SEED; for (K name : names()) { result = 31 * result + hashingStrategy.hashCode(name); List<V> values = getAll(name); for (int i = 0; i < values.size(); ++i) { result = 31 * result + valueHashingStrategy.hashCode(values.get(i)); } } return result; }
/** * Generate a hash code for this object given a {@link HashingStrategy} to generate hash codes for * individual values. * @param valueHashingStrategy Defines how values will be hashed. */ public final int hashCode(HashingStrategy<V> valueHashingStrategy) { int result = HASH_CODE_SEED; for (K name : names()) { result = 31 * result + hashingStrategy.hashCode(name); List<V> values = getAll(name); for (int i = 0; i < values.size(); ++i) { result = 31 * result + valueHashingStrategy.hashCode(values.get(i)); } } return result; }