
fun.mike.flapjack.pipeline.lab.IterableInputContext Maven / Gradle / Ivy
package fun.mike.flapjack.pipeline.lab;
import java.util.Iterator;
import fun.mike.record.alpha.Record;
public class IterableInputContext implements InputContext {
private final Iterable records;
public IterableInputContext(Iterable records) {
this.records = records;
}
public Iterable getRecords() {
return records;
}
@Override
public InputChannel buildChannel() {
return new IteratorInputChannel(records.iterator());
}
@Override
public void accept(InputContextVisitor visitor) {
visitor.accept(this);
}
private class IteratorInputChannel implements InputChannel {
private final Iterator iterator;
private IteratorInputChannel(Iterator iterator) {
this.iterator = iterator;
}
@Override
public InputResult take() {
return InputResult.ok(iterator.next(), null);
}
@Override
public boolean hasMore() {
return iterator.hasNext();
}
@Override
public void close() {}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy