package com.alipay.bluewhale.core.stats.incval;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.alipay.bluewhale.core.callback.RunnableCallback;
public class IncValMerger extends RunnableCallback {
@SuppressWarnings("unchecked")
@Override
public <T> Object execute(T... args) {
Map<Object, Long> result=null;
if(args!=null&&args.length>0){
List<Map<Object, Long>> list = (List<Map<Object, Long>>) args[0];
result = new HashMap<Object, Long>();
for (Map<Object, Long> each : list) {
for (Entry<Object, Long> e : each.entrySet()) {
Object key = e.getKey();
Long val = e.getValue();
if (result.containsKey(key)) {
val += result.get(key);
}
result.put(key, val);
}
}
}
return result;
}
}