package ru.hflabs.rcd.model.task; import lombok.Getter; import lombok.Setter; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import ru.hflabs.rcd.model.EssenceTemplate; import ru.hflabs.rcd.model.annotation.Indexed; import ru.hflabs.util.core.date.DateUtil; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.Date; import java.util.Map; /** * Класс <class>TaskResult</class> описывает результат выполнения задачи */ @Getter @Setter @Indexed( id = TaskResult.PRIMARY_KEY, fields = { @Indexed.Field(TaskResult.DESCRIPTOR_ID), @Indexed.Field(TaskResult.OWNER), @Indexed.Field(TaskResult.AUTHOR), @Indexed.Field(TaskResult.REGISTRATION_DATE), @Indexed.Field(TaskResult.START_DATE), @Indexed.Field(TaskResult.END_DATE), @Indexed.Field(TaskResult.STATUS) } ) public class TaskResult extends EssenceTemplate { private static final long serialVersionUID = -4506107636665213495L; /* * Название полей с идентификаторами */ public static final String DESCRIPTOR_ID = "descriptorId"; public static final String OWNER = "owner"; public static final String AUTHOR = "author"; public static final String REGISTRATION_DATE = "registrationDate"; public static final String START_DATE = "startDate"; public static final String END_DATE = "endDate"; public static final String STATUS = "status"; /** Максимальный размер идентификатора */ public static final int ERROR_MESSAGE_MAX_SIZE = 2000; /** Идентификатор дескриптора задачи */ @Size(max = PRIMARY_KEY_MAX_SIZE) private String descriptorId; /** Идентификатор сервиса запуска */ @NotNull private String owner; /** Автор запуска задачи */ @NotNull private String author; /** Дата регистрации в планировщике */ @NotNull private Date registrationDate; /** Дата запуска */ @NotNull private Date startDate; /** Дата завершения */ @NotNull private Date endDate; /** Общий статус выполнения */ @NotNull private TaskResultStatus status = TaskResultStatus.UNKNOWN; /** Сообщение об ошибке */ @Size(max = ERROR_MESSAGE_MAX_SIZE) private String errorMessage; /** Параметры выполнения */ private Map<String, Object> parameters; /** Результаты выполнения */ private Map<String, Object> content; @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) .appendSuper(super.toString()) .append(DESCRIPTOR_ID, getDescriptorId()) .append(OWNER, getOwner()) .append(AUTHOR, getAuthor()) .append(REGISTRATION_DATE, DateUtil.formatDateTime(getRegistrationDate())) .append(START_DATE, DateUtil.formatDateTime(getStartDate())) .append(END_DATE, DateUtil.formatDateTime(getEndDate())) .append(STATUS, getStatus()) .toString(); } }