package com.zillabyte.motherbrain.flow.buffer.mock;
import java.io.Serializable;
import org.apache.log4j.Logger;
import com.google.common.collect.ArrayListMultimap;
import com.zillabyte.motherbrain.flow.MapTuple;
import com.zillabyte.motherbrain.flow.buffer.BufferProducer;
import com.zillabyte.motherbrain.flow.buffer.SinkToBuffer;
import com.zillabyte.motherbrain.utils.MeteredLog;
public class MockBufferProducer implements BufferProducer, Serializable {
private static final long serialVersionUID = 5337377114916636077L;
private SinkToBuffer _operation;
private String _relationName;
public static ArrayListMultimap<String, MapTuple> _tuples = ArrayListMultimap.create();
private static Logger _log = Logger.getLogger(MockBufferProducer.class);
public MockBufferProducer(SinkToBuffer operation) {
_operation = operation;
_relationName = _operation.getTopicName();
}
@Override
public void pushTuple(MapTuple t) {
synchronized (_tuples) {
_tuples.put(_relationName, t);
MeteredLog.info(_log, "size for relation: " + _relationName + " is: " + size(_relationName));
}
}
public static int size(String relationName) {
return _tuples.get(relationName).size();
}
public static void reset() {
synchronized (MockBufferProducer._tuples) {
_tuples.clear();
}
}
}