package storm.trident.operation.impl;
import backtype.storm.tuple.Values;
import java.util.List;
import java.util.Map;
import storm.trident.operation.ReducerAggregator;
import storm.trident.operation.TridentCollector;
import storm.trident.operation.TridentOperationContext;
import storm.trident.state.ReducerValueUpdater;
import storm.trident.state.StateUpdater;
import storm.trident.state.snapshot.Snapshottable;
import storm.trident.tuple.TridentTuple;
public class ReducerAggStateUpdater implements StateUpdater<Snapshottable> {
ReducerAggregator _agg;
public ReducerAggStateUpdater(ReducerAggregator agg) {
_agg = agg;
}
@Override
public void updateState(Snapshottable state, List<TridentTuple> tuples, TridentCollector collector) {
Object newVal = state.update(new ReducerValueUpdater(_agg, tuples));
collector.emit(new Values(newVal));
}
@Override
public void prepare(Map conf, TridentOperationContext context) {
}
@Override
public void cleanup() {
}
}