package com.tinkerpop.pipes.sideeffect;
import com.tinkerpop.pipes.AbstractPipe;
import com.tinkerpop.pipes.PipeFunction;
/**
* SideEffectFunctionPipe will emit the incoming object, but compute the PipeFunction on S.
* The result of the PipeFunction is not accounted for in the stream.
*
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class SideEffectFunctionPipe<S> extends AbstractPipe<S, S> {
private final PipeFunction<S, ?> sideEffectFunction;
public SideEffectFunctionPipe(final PipeFunction<S, ?> sideEffectFunction) {
this.sideEffectFunction = sideEffectFunction;
}
public S processNextStart() {
final S s = this.starts.next();
this.sideEffectFunction.compute(s);
return s;
}
}