package com.hubspot.mesos.json; import java.util.List; import java.util.Map; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; public class MesosMasterStateObject { private final String version; private final String gitSha; private final String gitTag; private final String buildDate; private final long buildTime; private final String buildUser; private final double startTime; private final double electedTime; private final String id; private final String pid; private final String hostname; private final int activatedSlaves; private final int deactivatedSlaves; private final String cluster; private final String leader; private final String logDir; private final Map<String, String> flags; private final List<MesosMasterSlaveObject> slaves; private final List<MesosFrameworkObject> frameworks; @JsonCreator public MesosMasterStateObject(@JsonProperty("version") String version, @JsonProperty("git_sha") String gitSha, @JsonProperty("git_tag") String gitTag, @JsonProperty("build_date") String buildDate, @JsonProperty("build_time") long buildTime, @JsonProperty("build_user") String buildUser, @JsonProperty("start_time") double startTime, @JsonProperty("elected_time") double electedTime, @JsonProperty("id") String id, @JsonProperty("pid") String pid, @JsonProperty("hostname") String hostname, @JsonProperty("activated_slaves") int activatedSlaves, @JsonProperty("deactivated_slaves") int deactivatedSlaves, @JsonProperty("cluster") String cluster, @JsonProperty("leader") String leader, @JsonProperty("log_dir") String logDir, @JsonProperty("flags") Map<String, String> flags, @JsonProperty("slaves") List<MesosMasterSlaveObject> slaves, @JsonProperty("frameworks") List<MesosFrameworkObject> frameworks) { this.version = version; this.gitSha = gitSha; this.gitTag = gitTag; this.buildDate = buildDate; this.buildTime = buildTime; this.buildUser = buildUser; this.startTime = startTime; this.electedTime = electedTime; this.id = id; this.pid = pid; this.hostname = hostname; this.activatedSlaves = activatedSlaves; this.deactivatedSlaves = deactivatedSlaves; this.cluster = cluster; this.leader = leader; this.logDir = logDir; this.flags = flags; this.slaves = slaves; this.frameworks = frameworks; } public String getVersion() { return version; } public String getGitSha() { return gitSha; } public String getGitTag() { return gitTag; } public String getBuildDate() { return buildDate; } public long getBuildTime() { return buildTime; } public String getBuildUser() { return buildUser; } public double getStartTime() { return startTime; } public double getElectedTime() { return electedTime; } public String getId() { return id; } public String getPid() { return pid; } public String getHostname() { return hostname; } public int getActivatedSlaves() { return activatedSlaves; } public int getDeactivatedSlaves() { return deactivatedSlaves; } public String getCluster() { return cluster; } public String getLeader() { return leader; } public String getLogDir() { return logDir; } public Map<String, String> getFlags() { return flags; } public List<MesosMasterSlaveObject> getSlaves() { return slaves; } public List<MesosFrameworkObject> getFrameworks() { return frameworks; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } MesosMasterStateObject that = (MesosMasterStateObject) o; return buildTime == that.buildTime && Double.compare(that.startTime, startTime) == 0 && Double.compare(that.electedTime, electedTime) == 0 && activatedSlaves == that.activatedSlaves && deactivatedSlaves == that.deactivatedSlaves && Objects.equals(version, that.version) && Objects.equals(gitSha, that.gitSha) && Objects.equals(gitTag, that.gitTag) && Objects.equals(buildDate, that.buildDate) && Objects.equals(buildUser, that.buildUser) && Objects.equals(id, that.id) && Objects.equals(pid, that.pid) && Objects.equals(hostname, that.hostname) && Objects.equals(cluster, that.cluster) && Objects.equals(leader, that.leader) && Objects.equals(logDir, that.logDir) && Objects.equals(flags, that.flags) && Objects.equals(slaves, that.slaves) && Objects.equals(frameworks, that.frameworks); } @Override public int hashCode() { return Objects.hash(version, gitSha, gitTag, buildDate, buildTime, buildUser, startTime, electedTime, id, pid, hostname, activatedSlaves, deactivatedSlaves, cluster, leader, logDir, flags, slaves, frameworks); } @Override public String toString() { return "MesosMasterStateObject{" + "version='" + version + '\'' + ", gitSha='" + gitSha + '\'' + ", gitTag='" + gitTag + '\'' + ", buildDate='" + buildDate + '\'' + ", buildTime=" + buildTime + ", buildUser='" + buildUser + '\'' + ", startTime=" + startTime + ", electedTime=" + electedTime + ", id='" + id + '\'' + ", pid='" + pid + '\'' + ", hostname='" + hostname + '\'' + ", activatedSlaves=" + activatedSlaves + ", deactivatedSlaves=" + deactivatedSlaves + ", cluster='" + cluster + '\'' + ", leader='" + leader + '\'' + ", logDir='" + logDir + '\'' + ", flags=" + flags + ", slaves=" + slaves + ", frameworks=" + frameworks + '}'; } }