Home / Class/ ReadOnlyValueIterator Class — netty Architecture

ReadOnlyValueIterator Class — netty Architecture

Architecture documentation for the ReadOnlyValueIterator class in ReadOnlyHttpHeaders.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  501fa18a_2e35_e063_a31f_c64a36c16cf7["ReadOnlyValueIterator"]
  9c0d840a_0c24_0113_a05c_3a195f469a49["ReadOnlyHttpHeaders.java"]
  501fa18a_2e35_e063_a31f_c64a36c16cf7 -->|defined in| 9c0d840a_0c24_0113_a05c_3a195f469a49
  3ce38442_c0e4_42a2_2763_622b95438136["ReadOnlyValueIterator()"]
  501fa18a_2e35_e063_a31f_c64a36c16cf7 -->|method| 3ce38442_c0e4_42a2_2763_622b95438136
  7154b8dc_403d_5bc2_eb3d_740bc2b9b7df["hasNext()"]
  501fa18a_2e35_e063_a31f_c64a36c16cf7 -->|method| 7154b8dc_403d_5bc2_eb3d_740bc2b9b7df
  e953f93a_6b0c_a0d9_f860_7bf476b6934d["CharSequence()"]
  501fa18a_2e35_e063_a31f_c64a36c16cf7 -->|method| e953f93a_6b0c_a0d9_f860_7bf476b6934d
  900d85c3_08c5_f5f4_60cb_b012a1f03d4b["remove()"]
  501fa18a_2e35_e063_a31f_c64a36c16cf7 -->|method| 900d85c3_08c5_f5f4_60cb_b012a1f03d4b
  4a042d21_590b_aff8_5cf0_503aaebbc8fa["findNextValue()"]
  501fa18a_2e35_e063_a31f_c64a36c16cf7 -->|method| 4a042d21_590b_aff8_5cf0_503aaebbc8fa

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/ReadOnlyHttpHeaders.java lines 418–458

    private final class ReadOnlyValueIterator implements Iterator<CharSequence> {
        private final CharSequence name;
        private final int nameHash;
        private int nextNameIndex;

        ReadOnlyValueIterator(CharSequence name) {
            this.name = name;
            nameHash = AsciiString.hashCode(name);
            nextNameIndex = findNextValue();
        }

        @Override
        public boolean hasNext() {
            return nextNameIndex != -1;
        }

        @Override
        public CharSequence next() {
            if (!hasNext()) {
                throw new NoSuchElementException();
            }
            CharSequence value = nameValuePairs[nextNameIndex + 1];
            nextNameIndex = findNextValue();
            return value;
        }

        @Override
        public void remove() {
            throw new UnsupportedOperationException("read only");
        }

        private int findNextValue() {
            for (int i = nextNameIndex; i < nameValuePairs.length; i += 2) {
                final CharSequence roName = nameValuePairs[i];
                if (nameHash == AsciiString.hashCode(roName) && contentEqualsIgnoreCase(name, roName)) {
                    return i;
                }
            }
            return -1;
        }
    }

Frequently Asked Questions

What is the ReadOnlyValueIterator class?
ReadOnlyValueIterator is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/ReadOnlyHttpHeaders.java.
Where is ReadOnlyValueIterator defined?
ReadOnlyValueIterator is defined in codec-http/src/main/java/io/netty/handler/codec/http/ReadOnlyHttpHeaders.java at line 418.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free