package storm.contrib.spring.topology.component.bolt;
import backtype.storm.topology.BoltDeclarer;
import storm.contrib.spring.topology.component.ComponentConfig;
import storm.contrib.spring.topology.component.grouping.IBoltGrouping;
import java.util.ArrayList;
import java.util.List;
/**
* [Class Description]
*
* @author Grant Henke
* @since 12/5/12
*/
public abstract class GenericBolt extends ComponentConfig implements IBolt {
protected final String componentId;
protected List<IBoltGrouping> boltGroupings;
protected Integer parallelismHint;
protected GenericBolt(final String componentId) {
this.componentId = componentId;
this.boltGroupings = new ArrayList<IBoltGrouping>();
this.parallelismHint = null;
}
public String getComponentId() {
return componentId;
}
public void setBoltGroupings(final List<IBoltGrouping> boltGroupings) {
this.boltGroupings = boltGroupings;
}
public List<IBoltGrouping> getBoltGroupings() {
return boltGroupings;
}
public void setParallelismHint(final Integer parallelismHint) {
this.parallelismHint = parallelismHint;
}
public Integer getParallelismHint() {
return parallelismHint;
}
protected void addBoltGroupingsToBolt(final BoltDeclarer boltDeclarer) {
for (IBoltGrouping boltGrouping : boltGroupings) {
boltGrouping.addToBolt(boltDeclarer);
}
}
}