package proj.zoie.test.mock; import java.util.Collection; import java.util.Comparator; import proj.zoie.api.DataConsumer; import proj.zoie.api.ZoieException; public class MockDataLoader<D> implements DataConsumer<D> { private long _delay; private int _count; private D _lastConsumed; private int _numCalls = 0; private int _numEvents = 0; private volatile int _maxBatch = 0; public MockDataLoader() { _delay = 100L; _count = 0; _lastConsumed = null; } public D getLastConsumed() { return _lastConsumed; } public void setDelay(long delay) { _delay = delay; } public long getDelay() { return _delay; } public int getCount() { return _count; } @Override public void consume(Collection<DataEvent<D>> data) throws ZoieException { _numCalls++; if (data != null) { _numEvents += data.size(); _maxBatch = Math.max(_maxBatch, data.size()); } if (data != null && data.size() > 0) { for (DataEvent<D> event : data) { _lastConsumed = event.getData(); } _count += data.size(); } try { Thread.sleep(_delay); } catch (InterruptedException e) { } } public int getNumCalls() { return _numCalls; } public int getNumEvents() { return _numEvents; } public int getMaxBatch() { return _maxBatch; } @Override public String getVersion() { throw new UnsupportedOperationException(); } @Override public Comparator<String> getVersionComparator() { throw new UnsupportedOperationException(); } }