package com.alipay.bluewhale.core.stats;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
* spout��bolt�����õ�ͳ�ƽ������
*
* @author yannian
*
*/
public class CommonStatsData implements Serializable {
private static final long serialVersionUID = -2811225938044543165L;
private HashMap<Integer, Object> emitted = new HashMap<Integer, Object>();
private HashMap<Integer, Object> transferred = new HashMap<Integer, Object>();
private int rate = 0;
public String getType() {
return "common";
}
@SuppressWarnings("unchecked")
public Map<String, Map<String, Long>> get_emitted() {
Map<String, Map<String, Long>> rtn = new HashMap<String, Map<String, Long>>();
for (Entry<Integer, Object> times : emitted.entrySet()) {
Map<Object, Long> val = (Map<Object, Long>) times.getValue();
String key = Stats.parseTimeKey(times.getKey());
Map<String, Long> stats = new HashMap<String, Long>();
for (Entry<Object, Long> stat : val.entrySet()) {
stats.put(String.valueOf(stat.getKey()), stat.getValue());
}
rtn.put(key, stats);
}
return rtn;
}
@SuppressWarnings("unchecked")
public Map<String, Map<String, Long>> get_transferred() {
Map<String, Map<String, Long>> rtn = new HashMap<String, Map<String, Long>>();
for (Entry<Integer, Object> times : transferred.entrySet()) {
Map<Object, Long> val = (Map<Object, Long>) times.getValue();
String key = Stats.parseTimeKey(times.getKey());
Map<String, Long> stats = new HashMap<String, Long>();
for (Entry<Object, Long> stat : val.entrySet()) {
stats.put((String) stat.getKey(), stat.getValue());
}
rtn.put(key, stats);
}
return rtn;
}
public HashMap<Integer, Object> getEmitted() {
return emitted;
}
public void setEmitted(HashMap<Integer, Object> emitted) {
this.emitted = emitted;
}
public HashMap<Integer, Object> getTransferred() {
return transferred;
}
public void setTransferred(HashMap<Integer, Object> transferred) {
this.transferred = transferred;
}
public int getRate() {
return rate;
}
public void setRate(int rate) {
this.rate = rate;
}
@Override
public boolean equals(Object assignment) {
if (assignment instanceof CommonStatsData
&& ((CommonStatsData) assignment).get_emitted().equals(emitted)
&& ((CommonStatsData) assignment).transferred
.equals(transferred)
&& ((CommonStatsData) assignment).getRate()==rate
) {
return true;
}
return false;
}
@Override
public int hashCode() {
return emitted.hashCode() + transferred.hashCode();
}
@Override
public String toString() {
return "CommonStatsData [emitted=" + emitted + ", transferred="
+ transferred + ", rate=" + rate + "]";
}
}