package storm.applications.bolt; import backtype.storm.tuple.Fields; import backtype.storm.tuple.Tuple; import backtype.storm.tuple.Values; import storm.applications.constants.SmartGridConstants.Field; /** * Author: Thilina * Date: 11/22/14 */ public class PlugLoadPredictorBolt extends LoadPredictorBolt { public PlugLoadPredictorBolt() { super(); } public PlugLoadPredictorBolt(int emitFrequencyInSeconds) { super(emitFrequencyInSeconds); } @Override public Fields getDefaultFields() { return new Fields(Field.TIMESTAMP, Field.HOUSE_ID, Field.HOUSEHOLD_ID, Field.PLUG_ID, Field.PREDICTED_LOAD); } @Override protected String getKey(Tuple tuple) { return tuple.getStringByField(Field.HOUSE_ID) + ":" + tuple.getStringByField(Field.HOUSEHOLD_ID) + ":" + tuple.getStringByField(Field.PLUG_ID); } @Override protected Values getOutputTuple(long predictedTimeStamp, String keyString, double predictedValue) { String[] segments = keyString.split(":"); return new Values(predictedTimeStamp, segments[0], segments[1], segments[2], predictedValue); } }