ValueIterator Class — netty Architecture
Architecture documentation for the ValueIterator class in DefaultHeaders.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 90cff61d_bf7a_6b09_9c92_ac55cd618c03["ValueIterator"] d13c6b28_cff5_5364_b6ce_dba100ef2ef4["DefaultHeaders.java"] 90cff61d_bf7a_6b09_9c92_ac55cd618c03 -->|defined in| d13c6b28_cff5_5364_b6ce_dba100ef2ef4 cc6b947b_9581_bb01_4535_230182cc7715["ValueIterator()"] 90cff61d_bf7a_6b09_9c92_ac55cd618c03 -->|method| cc6b947b_9581_bb01_4535_230182cc7715 c3cc96f6_a97e_68a6_26df_ba1dc50492ab["hasNext()"] 90cff61d_bf7a_6b09_9c92_ac55cd618c03 -->|method| c3cc96f6_a97e_68a6_26df_ba1dc50492ab c839e8fb_f65b_55a8_f9ea_be3fa9fcb773["V()"] 90cff61d_bf7a_6b09_9c92_ac55cd618c03 -->|method| c839e8fb_f65b_55a8_f9ea_be3fa9fcb773 d7d3d733_97d0_0ad8_1697_ef61ec7cfca5["remove()"] 90cff61d_bf7a_6b09_9c92_ac55cd618c03 -->|method| d7d3d733_97d0_0ad8_1697_ef61ec7cfca5 1ac90ba7_0a8c_5337_f2db_7bb8b3c73923["calculateNext()"] 90cff61d_bf7a_6b09_9c92_ac55cd618c03 -->|method| 1ac90ba7_0a8c_5337_f2db_7bb8b3c73923
Relationship Graph
Source Code
codec-base/src/main/java/io/netty/handler/codec/DefaultHeaders.java lines 1331–1381
private final class ValueIterator implements Iterator<V> {
private final K name;
private final int hash;
private HeaderEntry<K, V> removalPrevious;
private HeaderEntry<K, V> previous;
private HeaderEntry<K, V> next;
ValueIterator(K name) {
this.name = checkNotNull(name, "name");
hash = hashingStrategy.hashCode(name);
calculateNext(entries[index(hash)]);
}
@Override
public boolean hasNext() {
return next != null;
}
@Override
public V next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
if (previous != null) {
removalPrevious = previous;
}
previous = next;
calculateNext(next.next);
return previous.value;
}
@Override
public void remove() {
if (previous == null) {
throw new IllegalStateException();
}
removalPrevious = remove0(previous, removalPrevious);
previous = null;
}
private void calculateNext(HeaderEntry<K, V> entry) {
while (entry != null) {
if (entry.hash == hash && hashingStrategy.equals(name, entry.key)) {
next = entry;
return;
}
entry = entry.next;
}
next = null;
}
}
Source
Frequently Asked Questions
What is the ValueIterator class?
ValueIterator is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/DefaultHeaders.java.
Where is ValueIterator defined?
ValueIterator is defined in codec-base/src/main/java/io/netty/handler/codec/DefaultHeaders.java at line 1331.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free