// 
// Decompiled by Procyon v0.6.0
// 

package io.netty.channel.group;

import java.util.NoSuchElementException;
import io.netty.util.internal.ObjectUtil;
import java.util.Iterator;

final class CombinedIterator<E> implements Iterator<E>
{
    private final Iterator<E> i1;
    private final Iterator<E> i2;
    private Iterator<E> currentIterator;
    
    CombinedIterator(final Iterator<E> i1, final Iterator<E> i2) {
        this.i1 = ObjectUtil.checkNotNull(i1, "i1");
        this.i2 = ObjectUtil.checkNotNull(i2, "i2");
        this.currentIterator = i1;
    }
    
    @Override
    public boolean hasNext() {
        while (!this.currentIterator.hasNext()) {
            if (this.currentIterator != this.i1) {
                return false;
            }
            this.currentIterator = this.i2;
        }
        return true;
    }
    
    @Override
    public E next() {
        try {
            return this.currentIterator.next();
        }
        catch (final NoSuchElementException e) {
            if (this.currentIterator == this.i1) {
                this.currentIterator = this.i2;
                return this.currentIterator.next();
            }
            throw e;
        }
    }
    
    @Override
    public void remove() {
        this.currentIterator.remove();
    }
}
