package com.alipay.bluewhale.core.stats.keyAvg;
import java.util.HashMap;
import java.util.Map;
import com.alipay.bluewhale.core.callback.RunnableCallback;
import com.alipay.bluewhale.core.stats.RollingWindow.UpdateParams;
import com.alipay.bluewhale.core.stats.method.Pair;
import com.alipay.bluewhale.core.stats.method.StatFunction;
public class KeyAvgUpdater extends RunnableCallback {
@SuppressWarnings("unchecked")
@Override
public <T> Object execute(T... args) {
Map<Object, Pair> curr = null;
if (args != null && args.length > 0) {
UpdateParams p = (UpdateParams) args[0];
if (p.curr != null) {
curr = (Map<Object, Pair>) p.curr;
} else {
curr = new HashMap<Object, Pair>();
}
Object[] keyAvgArgs = p.args;
Long amt = 1l;
if (keyAvgArgs.length > 1) {
amt = Long.parseLong(String.valueOf(keyAvgArgs[1]));
}
StatFunction.update_keyed_avg(curr, keyAvgArgs[0], amt);
}
return curr;
}
}