Home / Class/ CombinedIterator Class — netty Architecture

CombinedIterator Class — netty Architecture

Architecture documentation for the CombinedIterator class in CombinedIterator.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  ebc500d1_ffc3_b99c_ee28_21a87ee6c75c["CombinedIterator"]
  4d7655af_8b38_6631_0869_ff92328e4185["CombinedIterator.java"]
  ebc500d1_ffc3_b99c_ee28_21a87ee6c75c -->|defined in| 4d7655af_8b38_6631_0869_ff92328e4185
  e416198d_5cfe_0994_7613_6efd35b54408["CombinedIterator()"]
  ebc500d1_ffc3_b99c_ee28_21a87ee6c75c -->|method| e416198d_5cfe_0994_7613_6efd35b54408
  2137a60f_4c1e_e31f_a973_208523aa17b6["hasNext()"]
  ebc500d1_ffc3_b99c_ee28_21a87ee6c75c -->|method| 2137a60f_4c1e_e31f_a973_208523aa17b6
  68c75a1a_1b46_fdcc_45f6_8879fc024ca7["E()"]
  ebc500d1_ffc3_b99c_ee28_21a87ee6c75c -->|method| 68c75a1a_1b46_fdcc_45f6_8879fc024ca7
  b4ba00ab_5f46_b3ff_66dd_95a1ce1969b1["remove()"]
  ebc500d1_ffc3_b99c_ee28_21a87ee6c75c -->|method| b4ba00ab_5f46_b3ff_66dd_95a1ce1969b1

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/group/CombinedIterator.java lines 25–72

final class CombinedIterator<E> implements Iterator<E> {

    private final Iterator<E> i1;
    private final Iterator<E> i2;
    private Iterator<E> currentIterator;

    CombinedIterator(Iterator<E> i1, Iterator<E> i2) {
        this.i1 = ObjectUtil.checkNotNull(i1, "i1");
        this.i2 = ObjectUtil.checkNotNull(i2, "i2");
        this.currentIterator = i1;
    }

    @Override
    public boolean hasNext() {
        for (;;) {
            if (currentIterator.hasNext()) {
                return true;
            }

            if (currentIterator == i1) {
                currentIterator = i2;
            } else {
                return false;
            }
        }
    }

    @Override
    public E next() {
        for (;;) {
            try {
                return currentIterator.next();
            } catch (NoSuchElementException e) {
                if (currentIterator == i1) {
                    currentIterator = i2;
                } else {
                    throw e;
                }
            }
        }
    }

    @Override
    public void remove() {
        currentIterator.remove();
    }

}

Frequently Asked Questions

What is the CombinedIterator class?
CombinedIterator is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/group/CombinedIterator.java.
Where is CombinedIterator defined?
CombinedIterator is defined in transport/src/main/java/io/netty/channel/group/CombinedIterator.java at line 25.

Analyze Your Own Codebase

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

Try Supermodel Free