package com.googlecode.totallylazy.iterators; import com.googlecode.totallylazy.Quadruple; import java.util.Iterator; import java.util.NoSuchElementException; public final class QuadrupleIterator<F, S, T, Fo> extends ReadOnlyIterator<Quadruple<F, S, T, Fo>> { private final Iterator<? extends F> first; private final Iterator<? extends S> second; private final Iterator<? extends T> third; private final Iterator<? extends Fo> fourth; public QuadrupleIterator(final Iterator<? extends F> first, final Iterator<? extends S> second, final Iterator<? extends T> third, final Iterator<? extends Fo> fourth) { this.first = first; this.second = second; this.third = third; this.fourth = fourth; } public final boolean hasNext() { return first.hasNext() && second.hasNext() && third.hasNext() && fourth.hasNext(); } public final Quadruple<F, S, T, Fo> next() { if (hasNext()) { return Quadruple.quadruple(first.next(), second.next(), third.next(), fourth.next()); } throw new NoSuchElementException(); } }