package org.act.tstream.task.heartbeat; import java.io.Serializable; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.act.tstream.stats.CommonStatsData; /** * Task heartbeat, this Object will be updated to ZK timely * * @author yannian * */ public class TaskHeartbeat implements Serializable { private static final long serialVersionUID = -6369195955255963810L; private Integer timeSecs; private Integer uptimeSecs; private CommonStatsData stats; // BoltTaskStats or // SpoutTaskStats private String componentType; public TaskHeartbeat(int timeSecs, int uptimeSecs, CommonStatsData stats, String componentType) { this.timeSecs = timeSecs; this.uptimeSecs = uptimeSecs; this.stats = stats; this.componentType = componentType; } public int getTimeSecs() { return timeSecs; } @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } public void setTimeSecs(int timeSecs) { this.timeSecs = timeSecs; } public int getUptimeSecs() { return uptimeSecs; } public void setUptimeSecs(int uptimeSecs) { this.uptimeSecs = uptimeSecs; } public CommonStatsData getStats() { return stats; } public void setStats(CommonStatsData stats) { this.stats = stats; } public void setComponentType(String componentType) { this.componentType = componentType; } public String getComponentType() { return componentType; } @Override public boolean equals(Object hb) { if (hb instanceof TaskHeartbeat && ((TaskHeartbeat) hb).timeSecs.equals(timeSecs) && ((TaskHeartbeat) hb).uptimeSecs.equals(uptimeSecs) && ((TaskHeartbeat) hb).stats.equals(stats)) { return true; } return false; } @Override public int hashCode() { return timeSecs.hashCode() + uptimeSecs.hashCode() + stats.hashCode(); } }