package com.thinkbiganalytics.jobrepo.query.model;
/*-
* #%L
* thinkbig-job-repository-core
* %%
* Copyright (C) 2017 ThinkBig Analytics
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.joda.time.DateTime;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* Represents a job execution in a JSON friendly format.
*
* @see com.thinkbiganalytics.jobrepo.query.model.transform.JobModelTransform
*/
@SuppressWarnings("UnusedDeclaration")
@JsonIgnoreProperties(ignoreUnknown = true)
public class DefaultExecutedJob implements Serializable, ExecutedJob {
private static final long serialVersionUID = 3327858118326404823L;
private long instanceId;
private long executionId;
private String jobName;
private DateTime createTime;
private DateTime endTime;
private Map<String, Object> executionContext;
private String exitCode;
private String exitStatus;
private Map<String, Object> jobParameters;
private DateTime lastUpdated;
private DateTime startTime;
private boolean isLatest;
private ExecutionStatus status;
private List<ExecutedStep> executedSteps;
private Long runTime;
private Long timeSinceEndTime;
private String jobType;
private String feedName;
public DefaultExecutedJob() {
}
public DefaultExecutedJob(ExecutedJob job) {
this.instanceId = job.getInstanceId();
this.executionId = job.getExecutionId();
this.jobName = job.getJobName();
this.createTime = job.getCreateTime();
this.endTime = job.getEndTime();
this.executionContext = job.getExecutionContext();
this.exitCode = job.getExitCode();
this.exitStatus = job.getExitStatus();
this.jobParameters = job.getJobParameters();
this.lastUpdated = job.getLastUpdated();
this.startTime = job.getStartTime();
this.status = job.getStatus();
this.executedSteps = job.getExecutedSteps();
this.runTime = job.getRunTime();
this.timeSinceEndTime = job.getTimeSinceEndTime();
this.jobType = job.getJobType();
this.feedName = job.getFeedName();
}
@Override
public long getInstanceId() {
return instanceId;
}
@Override
public void setInstanceId(final long instanceId) {
this.instanceId = instanceId;
}
@Override
public long getExecutionId() {
return executionId;
}
@Override
public void setExecutionId(final long executionId) {
this.executionId = executionId;
}
@Override
public String getJobName() {
return jobName;
}
@Override
public void setJobName(String jobName) {
this.jobName = jobName;
}
@Override
public DateTime getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(final DateTime createTime) {
this.createTime = createTime;
}
@Override
public DateTime getEndTime() {
return endTime;
}
@Override
public void setEndTime(final DateTime endTime) {
this.endTime = endTime;
}
@Override
public Map<String, Object> getExecutionContext() {
return executionContext;
}
@Override
public void setExecutionContext(final Map<String, Object> executionContext) {
this.executionContext = executionContext;
}
@Override
public String getExitCode() {
return exitCode;
}
@Override
public void setExitCode(final String exitCode) {
this.exitCode = exitCode;
}
@Override
public String getExitStatus() {
return exitStatus;
}
@Override
public void setExitStatus(String exitStatus) {
this.exitStatus = exitStatus;
}
@Override
public Map<String, Object> getJobParameters() {
return jobParameters;
}
@Override
public void setJobParameters(final Map<String, Object> jobParameters) {
this.jobParameters = jobParameters;
}
@Override
public DateTime getLastUpdated() {
return lastUpdated;
}
@Override
public void setLastUpdated(final DateTime lastUpdated) {
this.lastUpdated = lastUpdated;
}
@Override
public DateTime getStartTime() {
return startTime;
}
@Override
public void setStartTime(final DateTime startTime) {
this.startTime = startTime;
}
@Override
public ExecutionStatus getStatus() {
return status;
}
@Override
public void setStatus(final ExecutionStatus status) {
this.status = status;
}
@Override
public List<ExecutedStep> getExecutedSteps() {
return executedSteps;
}
@Override
public void setExecutedSteps(final List<ExecutedStep> executedSteps) {
this.executedSteps = executedSteps;
}
@Override
public Long getRunTime() {
return runTime;
}
@Override
public void setRunTime(Long runTime) {
this.runTime = runTime;
}
@Override
public Long getTimeSinceEndTime() {
return timeSinceEndTime;
}
@Override
public void setTimeSinceEndTime(Long timeSinceEndTime) {
this.timeSinceEndTime = timeSinceEndTime;
}
@Override
public String getJobType() {
return jobType;
}
@Override
public void setJobType(String jobType) {
this.jobType = jobType;
}
@Override
public String getFeedName() {
return feedName;
}
@Override
public void setFeedName(String feedName) {
this.feedName = feedName;
}
@Override
public String getDisplayStatus() {
String displayStatus = this.status.name();
if (ExecutionStatus.FAILED.equals(this.status) || (ExecutionStatus.COMPLETED.equals(this.status) && "FAILED"
.equalsIgnoreCase(this.exitCode))) {
displayStatus = "FAILED";
}
if (displayStatus.equalsIgnoreCase("FAILED") && "STOPPED".equalsIgnoreCase(this.exitCode)) {
displayStatus = "STOPPED";
}
return displayStatus;
}
}