All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hmsonline.storm.cassandra.trident.CassandraQuery Maven / Gradle / Ivy

package com.hmsonline.storm.cassandra.trident;

import java.util.List;
import java.util.Map;

import backtype.storm.tuple.Values;

import com.hmsonline.storm.cassandra.bolt.mapper.TridentColumnMapper;
import com.hmsonline.storm.cassandra.bolt.mapper.TridentTupleMapper;

import storm.trident.operation.TridentCollector;
import storm.trident.state.BaseQueryFunction;
import storm.trident.tuple.TridentTuple;

public class CassandraQuery extends BaseQueryFunction> {
    
    private TridentColumnMapper columnsMapper;
    private TridentTupleMapper tupleMapper;
    
    
    public CassandraQuery(String clientConfigKey, TridentTupleMapper tupleMapper,
            TridentColumnMapper columnMapper){
        this.columnsMapper = columnMapper;
        this.tupleMapper = tupleMapper;
    }

    @Override
    public List> batchRetrieve(CassandraState state, List args) {
        return state.batchRetrieve(args, this.tupleMapper);
    }

    @Override
    public void execute(TridentTuple tuple, Map result, TridentCollector collector) {
        List emitList = this.columnsMapper.mapToValues(this.tupleMapper.mapToRowKey(tuple), result, tuple);
        for(Values values : emitList){
            collector.emit(values);
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy