package com.revolsys.gis.parallel;
import com.revolsys.parallel.channel.Channel;
import com.revolsys.parallel.process.AbstractOutProcess;
public class IterableProcess<T> extends AbstractOutProcess<T> {
private Iterable<T> iterable;
public IterableProcess() {
}
public IterableProcess(final Channel<T> out, final Iterable<T> iterable) {
super(out);
this.iterable = iterable;
}
public IterableProcess(final Iterable<T> iterable) {
this.iterable = iterable;
}
public IterableProcess(final Iterable<T> iterable, final int bufferSize) {
super(bufferSize);
this.iterable = iterable;
}
/**
* @return the iterable
*/
public Iterable<T> getIterable() {
return this.iterable;
}
@Override
protected void run(final Channel<T> out) {
for (final T object : this.iterable) {
write(out, object);
}
}
/**
* @param iterable the iterable to set
*/
public void setIterable(final Iterable<T> iterable) {
this.iterable = iterable;
}
@Override
public String toString() {
return this.iterable.toString();
}
protected void write(final Channel<T> out, final T object) {
out.write(object);
}
}