DefaultHeaders Class — netty Architecture
Architecture documentation for the DefaultHeaders class in DefaultHeaders.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4870289d_b6ea_5d75_937a_7b31d015d4bf["DefaultHeaders"] d13c6b28_cff5_5364_b6ce_dba100ef2ef4["DefaultHeaders.java"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|defined in| d13c6b28_cff5_5364_b6ce_dba100ef2ef4 10475486_cb58_c67f_25b2_518519e4a994["DefaultHeaders()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 10475486_cb58_c67f_25b2_518519e4a994 70e28c51_c0c1_3353_d494_cc46482ebd12["containsAny()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 70e28c51_c0c1_3353_d494_cc46482ebd12 69385e00_b96d_ae27_5e66_b4b67666e1c7["V()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 69385e00_b96d_ae27_5e66_b4b67666e1c7 87a8343c_3799_e05a_6c80_6900ff84137b["getAll()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 87a8343c_3799_e05a_6c80_6900ff84137b 173b0333_40cc_4550_2cc5_f96d6b6bc7af["valueIterator()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 173b0333_40cc_4550_2cc5_f96d6b6bc7af c3414bb2_2fa9_15c6_735a_8b5dcdd0a30e["getAllAndRemove()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| c3414bb2_2fa9_15c6_735a_8b5dcdd0a30e 92492302_0552_2078_9eb9_fbb10122cfca["contains()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 92492302_0552_2078_9eb9_fbb10122cfca cadb5132_c48c_6b0c_6e7c_44f87c7a3a86["containsObject()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| cadb5132_c48c_6b0c_6e7c_44f87c7a3a86 0b4c87e7_84bd_2bc0_eca0_2cdb5c2db652["containsBoolean()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 0b4c87e7_84bd_2bc0_eca0_2cdb5c2db652 906888c9_69b1_5119_93c5_a63e43b97dae["containsByte()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| 906888c9_69b1_5119_93c5_a63e43b97dae f2a1210a_707a_41ab_fff6_566216fc9c48["containsChar()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| f2a1210a_707a_41ab_fff6_566216fc9c48 cd07aa1b_929a_bb9e_3095_56d7a60649f1["containsShort()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| cd07aa1b_929a_bb9e_3095_56d7a60649f1 a7ac8a13_7fe8_4646_a184_536337f6e81f["containsInt()"] 4870289d_b6ea_5d75_937a_7b31d015d4bf -->|method| a7ac8a13_7fe8_4646_a184_536337f6e81f
Relationship Graph
Source Code
codec-base/src/main/java/io/netty/handler/codec/DefaultHeaders.java lines 44–1474
public class DefaultHeaders<K, V, T extends Headers<K, V, T>> implements Headers<K, V, T> {
/**
* Constant used to seed the hash code generation. Could be anything but this was borrowed from murmur3.
*/
static final int HASH_CODE_SEED = 0xc2b2ae35;
private final HeaderEntry<K, V>[] entries;
protected final HeaderEntry<K, V> head;
private final byte hashMask;
private final ValueConverter<V> valueConverter;
private final NameValidator<K> nameValidator;
private final ValueValidator<V> valueValidator;
private final HashingStrategy<K> hashingStrategy;
int size;
public interface NameValidator<K> {
/**
* Verify that {@code name} is valid.
* @param name The name to validate.
* @throws RuntimeException if {@code name} is not valid.
*/
void validateName(K name);
@SuppressWarnings("rawtypes")
NameValidator NOT_NULL = new NameValidator() {
@Override
public void validateName(Object name) {
checkNotNull(name, "name");
}
};
}
public interface ValueValidator<V> {
/**
* Validate the given value. If the validation fails, then an implementation specific runtime exception may be
* thrown.
*
* @param value The value to validate.
*/
void validate(V value);
ValueValidator<?> NO_VALIDATION = new ValueValidator<Object>() {
@Override
public void validate(Object value) {
}
};
}
@SuppressWarnings("unchecked")
public DefaultHeaders(ValueConverter<V> valueConverter) {
this(JAVA_HASHER, valueConverter);
}
@SuppressWarnings("unchecked")
public DefaultHeaders(ValueConverter<V> valueConverter, NameValidator<K> nameValidator) {
this(JAVA_HASHER, valueConverter, nameValidator);
}
@SuppressWarnings("unchecked")
public DefaultHeaders(HashingStrategy<K> nameHashingStrategy, ValueConverter<V> valueConverter) {
this(nameHashingStrategy, valueConverter, NameValidator.NOT_NULL);
}
public DefaultHeaders(HashingStrategy<K> nameHashingStrategy,
ValueConverter<V> valueConverter, NameValidator<K> nameValidator) {
this(nameHashingStrategy, valueConverter, nameValidator, 16);
}
/**
* Create a new instance.
* @param nameHashingStrategy Used to hash and equality compare names.
* @param valueConverter Used to convert values to/from native types.
* @param nameValidator Used to validate name elements.
* @param arraySizeHint A hint as to how large the hash data structure should be.
* The next positive power of two will be used. An upper bound may be enforced.
*/
@SuppressWarnings("unchecked")
public DefaultHeaders(HashingStrategy<K> nameHashingStrategy,
ValueConverter<V> valueConverter, NameValidator<K> nameValidator, int arraySizeHint) {
this(nameHashingStrategy, valueConverter, nameValidator, arraySizeHint,
Source
Frequently Asked Questions
What is the DefaultHeaders class?
DefaultHeaders is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/DefaultHeaders.java.
Where is DefaultHeaders defined?
DefaultHeaders is defined in codec-base/src/main/java/io/netty/handler/codec/DefaultHeaders.java at line 44.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free