package com.hadooparchitecturebook.movingavg.trident;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Values;
import storm.trident.testing.FixedBatchSpout;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class FixedBatchSpoutBuilder {
public static FixedBatchSpout buildSpout() {
List<Values> ticks = new FixedBatchSpoutBuilder().readData();
FixedBatchSpout spout = new FixedBatchSpout(new Fields("stock-ticks"), 5, ticks.toArray(new Values[ticks.size()]));
spout.setCycle(false);
return spout;
}
public List<Values> readData() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/AAPL_daily_prices.csv")));
List<Values> ticks = new ArrayList<Values>();
String line = null;
while ((line = reader.readLine()) != null) ticks.add(new Values(line));
return ticks;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}