package org.jboss.seam.util;
import java.util.Enumeration;
import java.util.NoSuchElementException;
public class EnumerationEnumeration<T> implements Enumeration<T>
{
private Enumeration<T>[] enumerations;
private int loc = 0;
public EnumerationEnumeration(Enumeration<T>[] enumerations)
{
this.enumerations = enumerations;
}
public boolean hasMoreElements()
{
for (int i = loc; i < enumerations.length; i++)
{
if (enumerations[i].hasMoreElements())
{
return true;
}
}
return false;
}
public T nextElement()
{
while ( isCurrentEnumerationAvailable() )
{
if ( currentHasMoreElements() )
{
return currentNextElement();
}
else
{
nextEnumeration();
}
}
throw new NoSuchElementException();
}
private void nextEnumeration()
{
loc++;
}
/*private boolean isNextEnumerationAvailable()
{
return loc < enumerations.length-1;
}*/
private boolean isCurrentEnumerationAvailable()
{
return loc < enumerations.length;
}
private T currentNextElement()
{
return enumerations[loc].nextElement();
}
private boolean currentHasMoreElements()
{
return enumerations[loc].hasMoreElements();
}
}