package com.epam.cisen.core.api.dto;
import org.jongo.marshall.jackson.oid.Id;
import org.jongo.marshall.jackson.oid.ObjectId;
import java.util.ArrayList;
import java.util.List;
public class CiReport implements Cloneable {
@Id
@ObjectId
private String id;
private String jobId;
private String systemId;
private String buildId;
private String buildNumber;
private Status status;
private String url;
private String textStatus;
private long startTime;
private long duration;
private List<CIInitializer> initializers;
private boolean processed;
public CiReport() {
}
public CiReport clone() throws CloneNotSupportedException {
CiReport clone = (CiReport) super.clone();
clone.setId(null);
return clone;
}
public void addInitializer(CIInitializer initializer) {
if (initializers == null) {
initializers = new ArrayList<>();
}
initializers.add(initializer);
}
public String getJobId() {
return jobId;
}
public void setJobId(String jobId) {
this.jobId = jobId;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSystemId() {
return systemId;
}
public void setSystemId(String systemId) {
this.systemId = systemId;
}
public String getBuildId() {
return buildId;
}
public void setBuildId(String buildId) {
this.buildId = buildId;
}
public String getBuildNumber() {
return buildNumber;
}
public void setBuildNumber(String buildNumber) {
this.buildNumber = buildNumber;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTextStatus() {
return textStatus;
}
public void setTextStatus(String textStatus) {
this.textStatus = textStatus;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public long getDuration() {
return duration;
}
public void setDuration(long duration) {
this.duration = duration;
}
public List<CIInitializer> getInitializers() {
return initializers;
}
public void setInitializers(List<CIInitializer> initializers) {
this.initializers = initializers;
}
public boolean isProcessed() {
return processed;
}
public void setProcessed(boolean processed) {
this.processed = processed;
}
public static enum Status {
GREEN,
RED,
YELLOW,
IN_PROGRESS;
public boolean isSuccess() {
return this.equals(GREEN);
}
public boolean inProgress() {
return this.equals(IN_PROGRESS);
}
}
}