package storm.applications.spout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import storm.applications.constants.BaseConstants.BaseConf;
import storm.applications.spout.generator.Generator;
import storm.applications.util.config.ClassLoaderUtils;
import storm.applications.util.stream.StreamValues;
/**
*
* @author Maycon Viana Bordin <mayconbordin@gmail.com>
*/
public class GeneratorSpout extends AbstractSpout {
private static final Logger LOG = LoggerFactory.getLogger(GeneratorSpout.class);
private Generator generator;
@Override
protected void initialize() {
String generatorClass = config.getString(getConfigKey(BaseConf.SPOUT_GENERATOR));
generator = (Generator) ClassLoaderUtils.newInstance(generatorClass, "parser", LOG);
generator.initialize(config);
}
@Override
public void nextTuple() {
StreamValues values = generator.generate();
collector.emit(values.getStreamId(), values);
}
}