package com.hubspot.mesos.json; import java.util.List; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; public class MesosSlaveStateObject { private final String id; private final String pid; private final String hostname; private final long startTime; private final MesosResourcesObject resources; private final List<MesosSlaveFrameworkObject> frameworks; private final int finishedTasks; private final int lostTasks; private final int startedTasks; private final int failedTasks; private final int killedTasks; private final int stagedTasks; @JsonCreator public MesosSlaveStateObject(@JsonProperty("id") String id, @JsonProperty("pid") String pid, @JsonProperty("hostname") String hostname, @JsonProperty("start_time") long startTime, @JsonProperty("resources") MesosResourcesObject resources, @JsonProperty("frameworks") List<MesosSlaveFrameworkObject> frameworks, @JsonProperty("finished_tasks") int finishedTasks, @JsonProperty("lost_tasks") int lostTasks, @JsonProperty("started_tasks") int startedTasks, @JsonProperty("failed_tasks") int failedTasks, @JsonProperty("killed_tasks") int killedTasks, @JsonProperty("staged_tasks") int stagedTasks) { this.id = id; this.pid = pid; this.hostname = hostname; this.startTime = startTime; this.resources = resources; this.frameworks = frameworks; this.finishedTasks = finishedTasks; this.lostTasks = lostTasks; this.startedTasks = startedTasks; this.failedTasks = failedTasks; this.killedTasks = killedTasks; this.stagedTasks = stagedTasks; } public String getId() { return id; } public String getPid() { return pid; } public String getHostname() { return hostname; } public List<MesosSlaveFrameworkObject> getFrameworks() { return frameworks; } public long getStartTime() { return startTime; } public MesosResourcesObject getResources() { return resources; } public int getFinishedTasks() { return finishedTasks; } public int getLostTasks() { return lostTasks; } public int getStartedTasks() { return startedTasks; } public int getFailedTasks() { return failedTasks; } public int getKilledTasks() { return killedTasks; } public int getStagedTasks() { return stagedTasks; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } MesosSlaveStateObject that = (MesosSlaveStateObject) o; return startTime == that.startTime && finishedTasks == that.finishedTasks && lostTasks == that.lostTasks && startedTasks == that.startedTasks && failedTasks == that.failedTasks && killedTasks == that.killedTasks && stagedTasks == that.stagedTasks && Objects.equals(id, that.id) && Objects.equals(pid, that.pid) && Objects.equals(hostname, that.hostname) && Objects.equals(resources, that.resources) && Objects.equals(frameworks, that.frameworks); } @Override public int hashCode() { return Objects.hash(id, pid, hostname, startTime, resources, frameworks, finishedTasks, lostTasks, startedTasks, failedTasks, killedTasks, stagedTasks); } @Override public String toString() { return "MesosSlaveStateObject{" + "id='" + id + '\'' + ", pid='" + pid + '\'' + ", hostname='" + hostname + '\'' + ", startTime=" + startTime + ", resources=" + resources + ", frameworks=" + frameworks + ", finishedTasks=" + finishedTasks + ", lostTasks=" + lostTasks + ", startedTasks=" + startedTasks + ", failedTasks=" + failedTasks + ", killedTasks=" + killedTasks + ", stagedTasks=" + stagedTasks + '}'; } }