Home / Class/ DefaultHeaders Class — netty Architecture

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,

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