All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fun.mike.flapjack.pipeline.lab.IterableInputContext Maven / Gradle / Ivy

There is a newer version: 0.0.15
Show newest version
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