package detective.core.distribute;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import detective.utils.Utils;
/**
* The the result after a job ran in a spark cluster
*
* @author James Luo
*
*/
public class JobRunResult implements Serializable, Comparable<JobRunResult> {
public static class JobRunResultSteps implements Serializable{
private static final long serialVersionUID = 1L;
private String stepName;
private boolean successed;
private List<String> additionalMsgs = new ArrayList<String>();
@Override
public String toString() {
return "JobRunResultSteps [stepName=" + stepName + ", successed=" + successed
+ ", additionalMsgs=" + additionalMsgs + "]";
}
public String getStepName() {
return stepName;
}
public void setStepName(String stepName) {
this.stepName = stepName;
}
public boolean isSuccessed() {
return successed;
}
public void setSuccessed(boolean successed) {
this.successed = successed;
}
public List<String> getAdditionalMsgs() {
return additionalMsgs;
}
public void setAdditionalMsgs(List<String> additionalMsgs) {
this.additionalMsgs = additionalMsgs;
}
}
private static final long serialVersionUID = 1L;
/**
* The story name user defined.In JobToRun, it has only job class name
*/
private String storyName;
/**
* The scenario name
*/
private String scenarioName;
/**
* Success or not
*/
private Boolean successed = false;
/**
* The error if any
*/
private Throwable error;
/**
* ignored for some reason?
*/
private boolean ignored = false;
private List<JobRunResultSteps> steps = new ArrayList<JobRunResultSteps>();
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("JobRunResult [\n");
builder.append("storyName:").append(storyName).append("\n ");
builder.append("scenarioName:").append(scenarioName).append("\n ");
builder.append("successed:").append(successed).append("\n ");
builder.append("ignored:").append(ignored).append("\n ");
if (error != null){
builder.append("error:").append(error).append("\n ");
builder.append("error callstack:").append(Utils.getStackTrace(error)).append("\n");
}
return builder.toString();
}
public String getStoryName() {
return storyName;
}
public void setStoryName(String storyName) {
this.storyName = storyName;
}
public String getScenarioName() {
return scenarioName;
}
public void setScenarioName(String scenarioName) {
this.scenarioName = scenarioName;
}
public Boolean getSuccessed() {
return successed;
}
public void setSuccessed(Boolean successed) {
this.successed = successed;
}
public Throwable getError() {
return error;
}
public void setError(Throwable error) {
this.error = error;
}
public boolean isIgnored() {
return ignored;
}
public void setIgnored(boolean ignored) {
this.ignored = ignored;
}
@Override
public int compareTo(JobRunResult o) {
return this.storyName.compareTo(o.getStoryName());
}
public List<JobRunResultSteps> getSteps() {
return steps;
}
public void setSteps(List<JobRunResultSteps> steps) {
this.steps = steps;
}
}