com.metamx.common.guava.LimitedYieldingAccumulator Maven / Gradle / Ivy
The newest version!
package com.metamx.common.guava;
/**
*/
public class LimitedYieldingAccumulator extends YieldingAccumulator
{
private int limit;
private final YieldingAccumulator delegate;
private volatile int count = 0;
public LimitedYieldingAccumulator(
YieldingAccumulator delegate, int limit
)
{
this.limit = limit;
this.delegate = delegate;
}
@Override
public void yield()
{
delegate.yield();
}
@Override
public boolean yielded()
{
return delegate.yielded();
}
@Override
public void reset()
{
delegate.reset();
}
@Override
public OutType accumulate(OutType accumulated, T in)
{
if (count < limit) {
count++;
return delegate.accumulate(accumulated, in);
}
return accumulated;
}
}