package org.molgenis.data.jobs.model; import org.molgenis.auth.User; import org.molgenis.data.Entity; import org.molgenis.data.meta.model.EntityType; import org.molgenis.data.support.StaticEntity; import org.springframework.util.StringUtils; import java.util.Date; import static org.molgenis.data.jobs.model.JobExecutionMetaData.*; /** * Superclass that represents a job execution. * <p> * Do not add abstract identifier to this class, see EntitySerializerTest */ public class JobExecution extends StaticEntity { public JobExecution(Entity entity) { super(entity); } public JobExecution(EntityType entityType) { super(entityType); setDefaultValues(); } public JobExecution(String identifier, EntityType entityType) { super(entityType); setDefaultValues(); setIdentifier(identifier); } public String getIdentifier() { return getString(IDENTIFIER); } public void setIdentifier(String value) { set(IDENTIFIER, value); } public String getUser() { return getString(USER); } public void setUser(String username) { set(USER, username); } public void setUser(User value) { set(USER, value.getUsername()); } public Status getStatus() { return Status.valueOf(getString(STATUS)); } public void setStatus(Status value) { set(STATUS, value.toString().toUpperCase()); } public String getType() { return getString(TYPE); } public void setType(String value) { set(TYPE, value); } public Date getSubmissionDate() { return getUtilDate(SUBMISSION_DATE); } public void setSubmissionDate(Date value) { set(SUBMISSION_DATE, value); } public Date getStartDate() { return getUtilDate(START_DATE); } public void setStartDate(Date value) { set(START_DATE, value); } public Date getEndDate() { return getUtilDate(END_DATE); } public void setEndDate(Date value) { set(END_DATE, value); } public Integer getProgressInt() { return getInt(PROGRESS_INT); } public void setProgressInt(Integer value) { set(PROGRESS_INT, value); } public String getProgressMessage() { return getString(PROGRESS_MESSAGE); } public void setProgressMessage(String value) { set(PROGRESS_MESSAGE, value); } public Integer getProgressMax() { return getInt(PROGRESS_MAX); } public void setProgressMax(Integer value) { set(PROGRESS_MAX, value); } public String getLog() { return getString(LOG); } public void setLog(String value) { set(LOG, value); } public String getResultUrl() { return getString(RESULT_URL); } public void setResultUrl(String value) { set(RESULT_URL, value); } public String[] getSuccessEmail() { String email = getString(SUCCESS_EMAIL); if (StringUtils.isEmpty(email)) { return new String[] {}; } return email.split(","); } public String[] getFailureEmail() { String email = getString(FAILURE_EMAIL); if (StringUtils.isEmpty(email)) { return new String[] {}; } return email.split(","); } public void setSuccessEmail(String successEmail) { set(SUCCESS_EMAIL, successEmail); } public void setFailureEmail(String failureEmail) { set(FAILURE_EMAIL, failureEmail); } public enum Status { PENDING, RUNNING, SUCCESS, FAILED, CANCELED } private void setDefaultValues() { setSubmissionDate(new Date()); setStatus(Status.PENDING); } }