package com.hubspot.deploy;
import java.util.List;
import java.util.Objects;
import javax.validation.constraints.NotNull;
import com.google.common.base.Optional;
import com.hubspot.singularity.HealthcheckProtocol;
public class HealthcheckOptionsBuilder {
@NotNull
private String uri;
private Optional<Integer> portIndex;
private Optional<Long> portNumber;
private Optional<HealthcheckProtocol> protocol;
private Optional<Integer> startupTimeoutSeconds;
private Optional<Integer> startupDelaySeconds;
private Optional<Integer> startupIntervalSeconds;
private Optional<Integer> intervalSeconds;
private Optional<Integer> responseTimeoutSeconds;
private Optional<Integer> maxRetries;
private Optional<List<Integer>> failureStatusCodes;
public HealthcheckOptionsBuilder(String uri) {
this.uri = uri;
this.portIndex = Optional.absent();
this.portNumber = Optional.absent();
this.protocol = Optional.absent();
this.startupTimeoutSeconds = Optional.absent();
this.startupDelaySeconds = Optional.absent();
this.startupIntervalSeconds = Optional.absent();
this.intervalSeconds = Optional.absent();
this.responseTimeoutSeconds = Optional.absent();
this.maxRetries = Optional.absent();
this.failureStatusCodes = Optional.absent();
}
public String getUri() {
return uri;
}
public HealthcheckOptionsBuilder setUri(String uri) {
this.uri = uri;
return this;
}
public Optional<Integer> getPortIndex() {
return portIndex;
}
public HealthcheckOptionsBuilder setPortIndex(Optional<Integer> portIndex) {
this.portIndex = portIndex;
return this;
}
public Optional<Long> getPortNumber() {
return portNumber;
}
public HealthcheckOptionsBuilder setPortNumber(Optional<Long> portNumber) {
this.portNumber = portNumber;
return this;
}
public Optional<HealthcheckProtocol> getProtocol() {
return protocol;
}
public HealthcheckOptionsBuilder setProtocol(Optional<HealthcheckProtocol> protocol) {
this.protocol = protocol;
return this;
}
public Optional<Integer> getStartupTimeoutSeconds() {
return startupTimeoutSeconds;
}
public HealthcheckOptionsBuilder setStartupTimeoutSeconds(Optional<Integer> startupTimeoutSeconds) {
this.startupTimeoutSeconds = startupTimeoutSeconds;
return this;
}
public Optional<Integer> getStartupDelaySeconds() {
return startupDelaySeconds;
}
public HealthcheckOptionsBuilder setStartupDelaySeconds(Optional<Integer> startupDelaySeconds) {
this.startupDelaySeconds = startupDelaySeconds;
return this;
}
public Optional<Integer> getStartupIntervalSeconds() {
return startupIntervalSeconds;
}
public HealthcheckOptionsBuilder setStartupIntervalSeconds(Optional<Integer> startupIntervalSeconds) {
this.startupIntervalSeconds = startupIntervalSeconds;
return this;
}
public Optional<Integer> getIntervalSeconds() {
return intervalSeconds;
}
public HealthcheckOptionsBuilder setIntervalSeconds(Optional<Integer> intervalSeconds) {
this.intervalSeconds = intervalSeconds;
return this;
}
public Optional<Integer> getResponseTimeoutSeconds() {
return responseTimeoutSeconds;
}
public HealthcheckOptionsBuilder setResponseTimeoutSeconds(Optional<Integer> responseTimeoutSeconds) {
this.responseTimeoutSeconds = responseTimeoutSeconds;
return this;
}
public Optional<Integer> getMaxRetries() {
return maxRetries;
}
public HealthcheckOptionsBuilder setMaxRetries(Optional<Integer> maxRetries) {
this.maxRetries = maxRetries;
return this;
}
public Optional<List<Integer>> getFailureStatusCodes() {
return failureStatusCodes;
}
public HealthcheckOptionsBuilder setFailureStatusCodes(Optional<List<Integer>> failureStatusCodes) {
this.failureStatusCodes = failureStatusCodes;
return this;
}
public HealthcheckOptions build() {
return new HealthcheckOptions(uri, portIndex, portNumber, protocol, startupTimeoutSeconds, startupDelaySeconds, startupIntervalSeconds, intervalSeconds, responseTimeoutSeconds, maxRetries, failureStatusCodes);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
HealthcheckOptionsBuilder that = (HealthcheckOptionsBuilder) o;
return Objects.equals(uri, that.uri) &&
Objects.equals(portIndex, that.portIndex) &&
Objects.equals(portNumber, that.portNumber) &&
Objects.equals(protocol, that.protocol) &&
Objects.equals(startupTimeoutSeconds, that.startupTimeoutSeconds) &&
Objects.equals(startupDelaySeconds, that.startupDelaySeconds) &&
Objects.equals(startupIntervalSeconds, that.startupIntervalSeconds) &&
Objects.equals(intervalSeconds, that.intervalSeconds) &&
Objects.equals(responseTimeoutSeconds, that.responseTimeoutSeconds) &&
Objects.equals(maxRetries, that.maxRetries) &&
Objects.equals(failureStatusCodes, that.failureStatusCodes);
}
@Override
public int hashCode() {
return Objects.hash(uri, portIndex, portNumber, protocol, startupTimeoutSeconds, startupDelaySeconds, startupIntervalSeconds, intervalSeconds, responseTimeoutSeconds, maxRetries, failureStatusCodes);
}
@Override
public String toString() {
return "HealthcheckOptionsBuilder{" +
"uri='" + uri + '\'' +
", portIndex=" + portIndex +
", portNumber=" + portNumber +
", protocol=" + protocol +
", startupTimeoutSeconds=" + startupTimeoutSeconds +
", startupDelaySeconds=" + startupDelaySeconds +
", startupIntervalSeconds=" + startupIntervalSeconds +
", intervalSeconds=" + intervalSeconds +
", responseTimeoutSeconds=" + responseTimeoutSeconds +
", maxRetries=" + maxRetries +
", failureStatusCodes=" + failureStatusCodes +
'}';
}
}