package com.revolsys.parallel.process; import java.util.function.BiConsumer; import java.util.function.Consumer; import com.revolsys.parallel.channel.Channel; public class LambdaInProcess<T> extends BaseInProcess<T> { private Consumer<Channel<T>> postRun = (c) -> { }; private Consumer<Channel<T>> preRun = (c) -> { }; private BiConsumer<Channel<T>, T> process = (c, o) -> { }; public LambdaInProcess() { } public LambdaInProcess(final String processName) { super(processName); } @Override protected void postRun(final Channel<T> in) { this.postRun.accept(in); } @Override protected void preRun(final Channel<T> in) { this.preRun.accept(in); } @Override protected void process(final Channel<T> in, final T object) { this.process.accept(in, object); } public LambdaInProcess<T> setPostRun(final Consumer<Channel<T>> postRun) { this.postRun = postRun; return this; } public LambdaInProcess<T> setPostRun(final Runnable postRun) { this.postRun = (in) -> postRun.run(); return this; } public LambdaInProcess<T> setPreRun(final Consumer<Channel<T>> preRun) { this.preRun = preRun; return this; } public LambdaInProcess<T> setPreRun(final Runnable preRun) { this.preRun = (in) -> preRun.run(); return this; } public LambdaInProcess<T> setProcess(final BiConsumer<Channel<T>, T> process) { this.process = process; return this; } public LambdaInProcess<T> setProcess(final Consumer<T> process) { this.process = (in, object) -> process.accept(object); return this; } }