package org.hackreduce.storm.gnip.bolt;
import backtype.storm.topology.BasicOutputCollector;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseBasicBolt;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Tuple;
import org.mortbay.xml.XmlParser;
import java.util.Arrays;
public class GnipEventTransformBolt extends BaseBasicBolt {
@Override
public void execute(Tuple tuple, BasicOutputCollector basicOutputCollector) {
XmlParser.Node node = (XmlParser.Node) tuple.getValueByField("gnip_event");
String title = node.getString("title", false, false);
XmlParser.Node link = node.get("link");
String href = "couldn't extract href";
if (link == null) {
href = "???";
} else {
href = link.getAttribute("href");
}
basicOutputCollector.emit("msgs", Arrays.asList((Object) (title + " ---> " + href)));
}
@Override
public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {
outputFieldsDeclarer.declareStream("msgs", new Fields("msg"));
}
}