package com.xavient.dip.storm.builder;
import org.apache.storm.hbase.bolt.HBaseBolt;
import com.xavient.dip.common.AppArgs;
import com.xavient.dip.common.config.DiPConfiguration;
import com.xavient.dip.storm.bolt.DataIngestionHBaseBolt;
import com.xavient.dip.storm.bolt.DataIngestionHBaseMapper;
import backtype.storm.tuple.Fields;
public class HBaseBoltBuilder {
public static HBaseBolt build(AppArgs appArgs, String configKey) {
DataIngestionHBaseMapper hBaseMapper = new DataIngestionHBaseMapper()
.withColumnFamily(appArgs.getProperty(DiPConfiguration.HBASE_COL_FAMILY))
.withRowKeyField(appArgs.getProperty(DiPConfiguration.HBASE_ROW_KEY))
.withColumnFields(new Fields(appArgs.getProperty(DiPConfiguration.HBASE_COL_NAMES)
.split(appArgs.getProperty(DiPConfiguration.HBASE_COL_DELIMITER))));
HBaseBolt baseBolt = new DataIngestionHBaseBolt(appArgs.getProperty(DiPConfiguration.HBASE_TABLE_NAME),
hBaseMapper);
baseBolt.withConfigKey(configKey);
return baseBolt;
}
}