package org.embulk.spi.util;
import java.util.Iterator;
import java.util.NoSuchElementException;
import org.embulk.spi.Exec;
import org.embulk.spi.FileInput;
import org.embulk.spi.Buffer;
import org.embulk.spi.time.Timestamp;
import org.embulk.spi.time.TimestampFormatter;
import org.joda.time.DateTimeZone;
public class Inputs
{
private static abstract class AbstractPollIterator <E>
implements Iterator<E>
{
private E next;
protected abstract E poll();
@Override
public boolean hasNext()
{
if (next != null) {
return true;
} else {
next = poll();
return next != null;
}
}
@Override
public E next()
{
if (!hasNext()) {
throw new NoSuchElementException();
}
E l = next;
next = null;
return l;
}
@Override
public void remove()
{
throw new UnsupportedOperationException();
}
}
public static Iterable<Buffer> each(final FileInput input)
{
return new Iterable<Buffer>() {
public Iterator<Buffer> iterator()
{
return new AbstractPollIterator<Buffer>() {
public Buffer poll()
{
return input.poll();
}
};
}
};
}
}