package com.hubspot.singularity;
import com.google.common.base.Optional;
import com.google.common.collect.ListMultimap;
public class SingularityDeployStatisticsBuilder {
private final String requestId;
private final String deployId;
private int numTasks;
private int numSuccess;
private int numFailures;
private int numSequentialRetries;
private ListMultimap<Integer, Long> instanceSequentialFailureTimestamps;
private Optional<Long> lastFinishAt;
private Optional<ExtendedTaskState> lastTaskState;
private Optional<Long> averageRuntimeMillis;
public SingularityDeployStatisticsBuilder(String requestId, String deployId) {
this.requestId = requestId;
this.deployId = deployId;
this.lastFinishAt = Optional.absent();
this.lastTaskState = Optional.absent();
this.averageRuntimeMillis = Optional.absent();
}
public SingularityDeployStatistics build() {
return new SingularityDeployStatistics(requestId, deployId, numSuccess, numFailures, numSequentialRetries, lastFinishAt, lastTaskState, instanceSequentialFailureTimestamps, numTasks, averageRuntimeMillis);
}
public ListMultimap<Integer, Long> getInstanceSequentialFailureTimestamps() {
return instanceSequentialFailureTimestamps;
}
public SingularityDeployStatisticsBuilder setInstanceSequentialFailureTimestamps(ListMultimap<Integer, Long> instanceSequentialFailureTimestamps) {
this.instanceSequentialFailureTimestamps = instanceSequentialFailureTimestamps;
return this;
}
public int getNumSuccess() {
return numSuccess;
}
public SingularityDeployStatisticsBuilder setNumSuccess(int numSuccess) {
this.numSuccess = numSuccess;
return this;
}
public int getNumFailures() {
return numFailures;
}
public SingularityDeployStatisticsBuilder setNumFailures(int numFailures) {
this.numFailures = numFailures;
return this;
}
public int getNumSequentialRetries() {
return numSequentialRetries;
}
public SingularityDeployStatisticsBuilder setNumSequentialRetries(int numSequentialRetries) {
this.numSequentialRetries = numSequentialRetries;
return this;
}
public Optional<Long> getLastFinishAt() {
return lastFinishAt;
}
public SingularityDeployStatisticsBuilder setLastFinishAt(Optional<Long> lastFinishAt) {
this.lastFinishAt = lastFinishAt;
return this;
}
public Optional<ExtendedTaskState> getLastTaskState() {
return lastTaskState;
}
public SingularityDeployStatisticsBuilder setLastTaskState(Optional<ExtendedTaskState> lastTaskState) {
this.lastTaskState = lastTaskState;
return this;
}
public String getRequestId() {
return requestId;
}
public int getNumTasks() {
return numTasks;
}
public SingularityDeployStatisticsBuilder setNumTasks(int numTasks) {
this.numTasks = numTasks;
return this;
}
public Optional<Long> getAverageRuntimeMillis() {
return averageRuntimeMillis;
}
public SingularityDeployStatisticsBuilder setAverageRuntimeMillis(Optional<Long> averageRuntimeMillis) {
this.averageRuntimeMillis = averageRuntimeMillis;
return this;
}
public String getDeployId() {
return deployId;
}
@Override
public String toString() {
return "SingularityDeployStatisticsBuilder{" +
"requestId='" + requestId + '\'' +
", deployId='" + deployId + '\'' +
", numTasks=" + numTasks +
", numSuccess=" + numSuccess +
", numFailures=" + numFailures +
", numSequentialRetries=" + numSequentialRetries +
", instanceSequentialFailureTimestamps=" + instanceSequentialFailureTimestamps +
", lastFinishAt=" + lastFinishAt +
", lastTaskState=" + lastTaskState +
", averageRuntimeMillis=" + averageRuntimeMillis +
'}';
}
}