blob: b92c57bd106e4a9514cd211441e2bd519283f479 [file] [log] [blame]
package backtype.storm.topology;
import java.io.Serializable;
import java.util.Map;
/**
* Common methods for all possible components in a topology. This interface is used
* when defining topologies using the Java API.
*/
public interface IComponent extends Serializable {
/**
* Declare the output schema for all the streams of this topology.
*
* @param declarer this is used to declare output stream ids, output fields, and whether or not each output stream is a direct stream
*/
void declareOutputFields(OutputFieldsDeclarer declarer);
/**
* Declare configuration specific to this component. Only a subset of the "topology.*" configs can
* be overridden. The component configuration can be further overridden when constructing the
* topology using {@link TopologyBuilder}
*
*/
Map<String, Object> getComponentConfiguration();
}