package com.hubspot.blazar.base; import java.util.Collections; import java.util.List; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; /** * Steps executed after a build, field of {@link BuildConfig} */ public class PostBuildSteps { private final List<BuildStep> onFailure; private final List<BuildStep> onSuccess; private final List<BuildStep> always; @JsonCreator public PostBuildSteps(@JsonProperty("onFailure") List<BuildStep> onFailure, @JsonProperty("onSuccess") List<BuildStep> onSuccess, @JsonProperty("always") List<BuildStep> always) { this.onFailure = MoreObjects.firstNonNull(onFailure, Collections.emptyList()); this.onSuccess = MoreObjects.firstNonNull(onSuccess, Collections.emptyList()); this.always = MoreObjects.firstNonNull(always, Collections.emptyList()); } public List<BuildStep> getOnFailure() { return onFailure; } public List<BuildStep> getOnSuccess() { return onSuccess; } public List<BuildStep> getAlways() { return always; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } PostBuildSteps that = (PostBuildSteps) o; return Objects.equals(onFailure, that.onFailure) && Objects.equals(onSuccess, that.onSuccess) && Objects.equals(always, that.always); } @Override public int hashCode() { return Objects.hash(onFailure, onSuccess, always); } @Override public String toString() { return MoreObjects.toStringHelper(this) .add("onFailure", onFailure) .add("onSuccess", onSuccess) .add("always", always) .toString(); } }