package com.googlecode.totallylazy.transducers;
import java.util.Iterator;
import static com.googlecode.totallylazy.transducers.State.Stop;
public class IteratorSender<A> implements Sender<A> {
private final Iterator<? extends A> iterator;
public IteratorSender(Iterator<? extends A> iterator) {this.iterator = iterator;}
@Override
public AutoCloseable send(Receiver<A> receiver) {
if (receiver.start().equals(Stop)) return EMPTY_CLOSEABLE;
while (iterator.hasNext()) {
A value = iterator.next();
if (receiver.next(value).equals(Stop)) break;
}
receiver.finish();
return EMPTY_CLOSEABLE;
}
}