blob: 7a1e58347ea2aefa6a1841f77da22d926d11ce1f [file] [log] [blame]
package backtype.storm.clojure;
import backtype.storm.generated.StreamInfo;
import backtype.storm.task.ShellBolt;
import backtype.storm.topology.IRichBolt;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.tuple.Fields;
import java.util.Map;
public class RichShellBolt extends ShellBolt implements IRichBolt {
private Map<String, StreamInfo> _outputs;
public RichShellBolt(String script, String command, Map<String, StreamInfo> outputs) {
super(script, command);
_outputs = outputs;
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
for(String stream: _outputs.keySet()) {
StreamInfo def = _outputs.get(stream);
if(def.is_direct()) {
declarer.declareStream(stream, true, new Fields(def.get_output_fields()));
} else {
declarer.declareStream(stream, new Fields(def.get_output_fields()));
}
}
}
@Override
public Map<String, Object> getComponentConfiguration() {
return null;
}
}