Package backtype.storm.clojure

Source Code of backtype.storm.clojure.RichShellBolt

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;
    }   
}
TOP

Related Classes of backtype.storm.clojure.RichShellBolt

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.