package org.jfrog.build.api;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.collect.Lists;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author Tomer Cohen
*/
@XStreamAlias("buildretention")
public class BuildRetention implements Serializable {
private int count = -1;
private Date minimumBuildDate;
private boolean deleteBuildArtifacts;
private List<String> buildNumbersNotToBeDiscarded = Lists.newArrayList();
// for json instantiation
public BuildRetention() {
}
public BuildRetention(boolean deleteBuildArtifacts) {
this.deleteBuildArtifacts = deleteBuildArtifacts;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public Date getMinimumBuildDate() {
return minimumBuildDate;
}
public void setMinimumBuildDate(Date minimumBuildDate) {
this.minimumBuildDate = minimumBuildDate;
}
public void setDeleteBuildArtifacts(boolean deleteBuildArtifacts) {
this.deleteBuildArtifacts = deleteBuildArtifacts;
}
public boolean isDeleteBuildArtifacts() {
return deleteBuildArtifacts;
}
public void addBuildNotToBeDiscarded(String buildNumber) {
buildNumbersNotToBeDiscarded.add(buildNumber);
}
public void setBuildNumbersNotToBeDiscarded(List<String> buildNumbersNotToBeDiscarded) {
this.buildNumbersNotToBeDiscarded = buildNumbersNotToBeDiscarded;
}
public List<String> getBuildNumbersNotToBeDiscarded() {
return buildNumbersNotToBeDiscarded;
}
@JsonIgnore
public boolean isEmpty() {
return count == -1 && minimumBuildDate == null;
}
}