package eu.dnetlib.r2d2.neo4j.util;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;

public class ChainIterator<E> implements Iterator<E> {
	private List<Iterator<E>> iterators = new ArrayList<Iterator<E>>();

	@Override
	public boolean hasNext() {
		for (Iterator<E> i:iterators)
			if (i.hasNext())
				return true;
		
		return false;
	}

	@Override
	public E next() {
		for (Iterator<E> i:iterators)
			if (i.hasNext())
				return i.next();
		
		throw new NoSuchElementException();
	}

	@Override
	public void remove() {
		throw new UnsupportedOperationException();
	}
	
	public void addIteraror(Iterator<E> iterator) {
		iterators.add(iterator);
	}
}
