package ru.hflabs.rcd.task.performer;
import ru.hflabs.rcd.model.task.TaskParameterDefinition;
import ru.hflabs.rcd.model.task.TaskResultStatus;
/**
* Класс <class>TaskResultDetails</class> детали выполнения задачи
*
* @author Nazin Alexander
*/
public class TaskResultDetails extends ParametersHolder {
/** Количество итераций */
public static final transient TaskParameterDefinition<TaskResultStatus> STATUS = new TaskParameterDefinition<>("status", TaskResultStatus.UNKNOWN);
/** Сообщение об ошибке */
public static final transient TaskParameterDefinition<String> ERROR_MESSAGE = new TaskParameterDefinition<>("errorMessage", null);
/** Ошибка выполнения */
private transient Throwable throwable;
public TaskResultStatus getStatus() {
return retrieveParameter(STATUS.name, TaskResultStatus.class, STATUS.value);
}
public void setStatus(TaskResultStatus status) {
injectParameter(STATUS.name, status);
}
public String getErrorMessage() {
return retrieveParameter(ERROR_MESSAGE.name, String.class, ERROR_MESSAGE.value);
}
public void setErrorMessage(String errorMessage) {
injectParameter(ERROR_MESSAGE.name, errorMessage);
}
public Throwable getThrowable() {
return throwable;
}
public void setThrowable(Throwable throwable) {
this.throwable = throwable;
}
public void injectThrowable(Throwable targetThrowable) {
setThrowable(targetThrowable);
setErrorMessage(targetThrowable != null ? targetThrowable.getMessage() : null);
}
}