package org.fastcatsearch.util;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.NoSuchElementException;
public class CompoundEnumeration<E> implements Enumeration<E> {
private List<Enumeration<E>> enumerationList;
private int index;
public CompoundEnumeration() {
enumerationList = new ArrayList<Enumeration<E>>();
}
public void add(Enumeration<E> e) {
enumerationList.add(e);
}
@Override
public boolean hasMoreElements() {
while (index < enumerationList.size()) {
if (enumerationList.get(index) != null && enumerationList.get(index).hasMoreElements()) {
return true;
}
index++;
}
return false;
}
@Override
public E nextElement() {
if (!hasMoreElements()) {
throw new NoSuchElementException();
}
return (E) enumerationList.get(index).nextElement();
}
}