package com.tinkerpop.pipes.sideeffect;
import com.tinkerpop.pipes.AbstractPipe;
/**
* The CountPipe produces a side effect that is the total number of objects that have passed through it.
*
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class CountPipe<S> extends AbstractPipe<S, S> implements SideEffectPipe.GreedySideEffectPipe<S, Long> {
private Long counter = 0l;
protected S processNextStart() {
final S s = this.starts.next();
this.counter++;
return s;
}
public Long getSideEffect() {
return this.counter;
}
public void reset() {
this.counter = 0l;
super.reset();
}
}