ReadOnlyValueIterator Class — netty Architecture
Architecture documentation for the ReadOnlyValueIterator class in ReadOnlyHttp2Headers.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 59c3341d_5a2c_3b9a_13ac_5858bb471904["ReadOnlyValueIterator"] 298441ed_bdf2_76b6_011e_5ffe970f6cb8["ReadOnlyHttp2Headers.java"] 59c3341d_5a2c_3b9a_13ac_5858bb471904 -->|defined in| 298441ed_bdf2_76b6_011e_5ffe970f6cb8 ab6f5cd3_fe8d_9a78_42fe_76c3313cef76["ReadOnlyValueIterator()"] 59c3341d_5a2c_3b9a_13ac_5858bb471904 -->|method| ab6f5cd3_fe8d_9a78_42fe_76c3313cef76 ad1231a0_6365_b46e_1c4c_a894740db9a5["hasNext()"] 59c3341d_5a2c_3b9a_13ac_5858bb471904 -->|method| ad1231a0_6365_b46e_1c4c_a894740db9a5 430b05f8_ded3_9445_eefc_aadb1449996f["CharSequence()"] 59c3341d_5a2c_3b9a_13ac_5858bb471904 -->|method| 430b05f8_ded3_9445_eefc_aadb1449996f 6d504e76_0bf0_7ded_d9c7_d21e393a38be["remove()"] 59c3341d_5a2c_3b9a_13ac_5858bb471904 -->|method| 6d504e76_0bf0_7ded_d9c7_d21e393a38be 3041d822_d4a5_8ac8_d3ef_147bcbbcfa2e["calculateNext()"] 59c3341d_5a2c_3b9a_13ac_5858bb471904 -->|method| 3041d822_d4a5_8ac8_d3ef_147bcbbcfa2e
Relationship Graph
Source Code
codec-http2/src/main/java/io/netty/handler/codec/http2/ReadOnlyHttp2Headers.java lines 786–838
private final class ReadOnlyValueIterator implements Iterator<CharSequence> {
private int i;
private final int nameHash;
private final CharSequence name;
private AsciiString[] current = pseudoHeaders.length != 0 ? pseudoHeaders : otherHeaders;
private AsciiString next;
ReadOnlyValueIterator(CharSequence name) {
nameHash = AsciiString.hashCode(name);
this.name = name;
calculateNext();
}
@Override
public boolean hasNext() {
return next != null;
}
@Override
public CharSequence next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
CharSequence current = next;
calculateNext();
return current;
}
@Override
public void remove() {
throw new UnsupportedOperationException("read only");
}
private void calculateNext() {
for (; i < current.length; i += 2) {
AsciiString roName = current[i];
if (roName.hashCode() == nameHash && roName.contentEqualsIgnoreCase(name)) {
if (i + 1 < current.length) {
next = current[i + 1];
i += 2;
}
return;
}
}
if (current == pseudoHeaders) {
i = 0;
current = otherHeaders;
calculateNext();
} else {
next = null;
}
}
}
Source
Frequently Asked Questions
What is the ReadOnlyValueIterator class?
ReadOnlyValueIterator is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/ReadOnlyHttp2Headers.java.
Where is ReadOnlyValueIterator defined?
ReadOnlyValueIterator is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/ReadOnlyHttp2Headers.java at line 786.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free