package org.tomdz.storm.esper; import java.util.List; import java.util.Map; import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.task.TopologyContext; import backtype.storm.topology.base.BaseRichSpout; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.tuple.Fields; public class TestSpout extends BaseRichSpout { private static final long serialVersionUID = 1L; private final Fields fields; private final List<Object>[] data; private transient int curIdx; private transient SpoutOutputCollector collector; public TestSpout(Fields fields, List<Object>... data) { this.fields = fields; this.data = data; } @Override public void declareOutputFields(OutputFieldsDeclarer declarer) { declarer.declare(fields); } @Override public void nextTuple() { if (curIdx < data.length) { collector.emit(data[curIdx++]); } } @Override public void open(@SuppressWarnings("rawtypes") Map conf, TopologyContext context, SpoutOutputCollector collector) { this.collector = collector; } @Override public void close() {} @Override public void ack(Object msgId) {} @Override public void fail(Object msgId) {} }