package com.hubspot.singularity; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; public class SingularityTaskRequest implements Comparable<SingularityTaskRequest> { private final SingularityRequest request; private final SingularityDeploy deploy; private final SingularityPendingTask pendingTask; @JsonCreator public SingularityTaskRequest(@JsonProperty("request") SingularityRequest request, @JsonProperty("deploy") SingularityDeploy deploy, @JsonProperty("pendingTask") SingularityPendingTask pendingTask) { this.request = request; this.deploy = deploy; this.pendingTask = pendingTask; } public SingularityRequest getRequest() { return request; } public SingularityDeploy getDeploy() { return deploy; } public SingularityPendingTask getPendingTask() { return pendingTask; } @Override public int hashCode() { return Objects.hash(pendingTask.getPendingTaskId()); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } SingularityTaskRequest other = (SingularityTaskRequest) obj; if (pendingTask == null) { if (other.pendingTask != null) { return false; } } else if (!pendingTask.getPendingTaskId().equals(other.pendingTask.getPendingTaskId())) { return false; } return true; } @Override public int compareTo(SingularityTaskRequest o) { return this.getPendingTask().getPendingTaskId().compareTo(o.getPendingTask().getPendingTaskId()); } @Override public String toString() { return "SingularityTaskRequest{" + "request=" + request + ", deploy=" + deploy + ", pendingTask=" + pendingTask + '}'; } }