package com.hubspot.baragon.models; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; public class AgentCheckInResponse { private final Optional<String> exceptionMessage; private final TrafficSourceState state; private final long waitTime; @JsonCreator public AgentCheckInResponse(@JsonProperty("state") TrafficSourceState state, @JsonProperty("exceptionMessage") Optional<String> exceptionMessage, @JsonProperty("waitTime") long waitTime) { this.state = state; this.exceptionMessage = exceptionMessage; this.waitTime = waitTime; } public Optional<String> getExceptionMessage() { return exceptionMessage; } public TrafficSourceState getState() { return state; } public long getWaitTime() { return waitTime; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } AgentCheckInResponse that = (AgentCheckInResponse) o; if (waitTime != that.waitTime) { return false; } if (exceptionMessage != null ? !exceptionMessage.equals(that.exceptionMessage) : that.exceptionMessage != null) { return false; } return state == that.state; } @Override public int hashCode() { int result = exceptionMessage != null ? exceptionMessage.hashCode() : 0; result = 31 * result + (state != null ? state.hashCode() : 0); result = 31 * result + (int) (waitTime ^ (waitTime >>> 32)); return result; } @Override public String toString() { return "AgentCheckInResponse{" + "exceptionMessage=" + exceptionMessage + ", state=" + state + ", waitTime=" + waitTime + '}'; } }