ReadOnlyHttpHeaders Class — netty Architecture
Architecture documentation for the ReadOnlyHttpHeaders class in ReadOnlyHttpHeaders.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 2bbea49a_9f02_fdb8_1113_8beb98d6647a["ReadOnlyHttpHeaders"] 9c0d840a_0c24_0113_a05c_3a195f469a49["ReadOnlyHttpHeaders.java"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|defined in| 9c0d840a_0c24_0113_a05c_3a195f469a49 b79bf6c8_0fe1_71f8_dee3_506ea9f49d15["ReadOnlyHttpHeaders()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| b79bf6c8_0fe1_71f8_dee3_506ea9f49d15 ed067a25_3070_9652_4867_a459cbc3a9f6["IllegalArgumentException()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| ed067a25_3070_9652_4867_a459cbc3a9f6 980ca9ea_7af6_a865_e1d4_e82ec7fdeb13["validateHeaders()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| 980ca9ea_7af6_a865_e1d4_e82ec7fdeb13 d9212fe8_faa7_dad1_eb96_6d64147db066["CharSequence()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| d9212fe8_faa7_dad1_eb96_6d64147db066 d2f8f3ba_6052_28d6_eb5b_583f48b7c077["String()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| d2f8f3ba_6052_28d6_eb5b_583f48b7c077 8a4f07f6_8b82_8070_7bd5_86ad8162d541["Integer()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| 8a4f07f6_8b82_8070_7bd5_86ad8162d541 07b9a52f_1c98_d8f4_d835_dfadc1662d65["getInt()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| 07b9a52f_1c98_d8f4_d835_dfadc1662d65 d2936c7d_e5a3_562e_20ab_c507d3a9ac26["Short()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| d2936c7d_e5a3_562e_20ab_c507d3a9ac26 2e30dce2_d4cb_0bbc_0ce7_c514797927af["getShort()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| 2e30dce2_d4cb_0bbc_0ce7_c514797927af f06791fe_1360_2bf2_f11a_2a3bd2c4944b["Long()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| f06791fe_1360_2bf2_f11a_2a3bd2c4944b 50cf6fd4_2b78_17a8_4868_17f7104b794e["getTimeMillis()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| 50cf6fd4_2b78_17a8_4868_17f7104b794e 37628aa0_bee7_a334_1617_186c48882c32["getAll()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| 37628aa0_bee7_a334_1617_186c48882c32 cea9923b_ed65_51a8_fdf3_24547f04cfc4["entries()"] 2bbea49a_9f02_fdb8_1113_8beb98d6647a -->|method| cea9923b_ed65_51a8_fdf3_24547f04cfc4
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/ReadOnlyHttpHeaders.java lines 44–459
@UnstableApi
public final class ReadOnlyHttpHeaders extends HttpHeaders {
private final CharSequence[] nameValuePairs;
/**
* Create a new instance.
* @param validateHeaders {@code true} to validate the contents of each header name.
* @param nameValuePairs An array of the structure {@code [<name,value>,<name,value>,...]}.
* A copy will <strong>NOT</strong> be made of this array. If the contents of this array
* may be modified externally you are responsible for passing in a copy.
*/
public ReadOnlyHttpHeaders(boolean validateHeaders, CharSequence... nameValuePairs) {
if ((nameValuePairs.length & 1) != 0) {
throw newInvalidArraySizeException();
}
if (validateHeaders) {
validateHeaders(nameValuePairs);
}
this.nameValuePairs = nameValuePairs;
}
private static IllegalArgumentException newInvalidArraySizeException() {
return new IllegalArgumentException("nameValuePairs must be arrays of [name, value] pairs");
}
private static void validateHeaders(CharSequence... keyValuePairs) {
for (int i = 0; i < keyValuePairs.length; i += 2) {
DefaultHttpHeadersFactory.headersFactory().getNameValidator().validateName(keyValuePairs[i]);
}
}
private CharSequence get0(CharSequence name) {
final int nameHash = AsciiString.hashCode(name);
for (int i = 0; i < nameValuePairs.length; i += 2) {
CharSequence roName = nameValuePairs[i];
if (AsciiString.hashCode(roName) == nameHash && contentEqualsIgnoreCase(roName, name)) {
// Suppress a warning out of bounds access since the constructor allows only pairs
return nameValuePairs[i + 1];
}
}
return null;
}
@Override
public String get(String name) {
CharSequence value = get0(name);
return value == null ? null : value.toString();
}
@Override
public Integer getInt(CharSequence name) {
CharSequence value = get0(name);
return value == null ? null : INSTANCE.convertToInt(value);
}
@Override
public int getInt(CharSequence name, int defaultValue) {
CharSequence value = get0(name);
return value == null ? defaultValue : INSTANCE.convertToInt(value);
}
@Override
public Short getShort(CharSequence name) {
CharSequence value = get0(name);
return value == null ? null : INSTANCE.convertToShort(value);
}
@Override
public short getShort(CharSequence name, short defaultValue) {
CharSequence value = get0(name);
return value == null ? defaultValue : INSTANCE.convertToShort(value);
}
@Override
public Long getTimeMillis(CharSequence name) {
CharSequence value = get0(name);
return value == null ? null : INSTANCE.convertToTimeMillis(value);
}
@Override
public long getTimeMillis(CharSequence name, long defaultValue) {
Source
Frequently Asked Questions
What is the ReadOnlyHttpHeaders class?
ReadOnlyHttpHeaders is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/ReadOnlyHttpHeaders.java.
Where is ReadOnlyHttpHeaders defined?
ReadOnlyHttpHeaders is defined in codec-http/src/main/java/io/netty/handler/codec/http/ReadOnlyHttpHeaders.java at line 44.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free