public static JobInfo newJobInfo(final String jobId, final String jobType, final OffsetDateTime started, final OffsetDateTime lastUpdated, final Optional<OffsetDateTime> stopped, final JobStatus status, final List<JobMessage> messages, final Clock clock, final String hostname) { return new JobInfo(jobId, jobType, started, lastUpdated, stopped, status, messages, clock, hostname); }
@Override protected final String keyOf(final JobInfo value) { return value.getJobId(); }
@Override public void appendMessage(String jobId, JobMessage jobMessage) { JobInfo jobInfo = jobs.get(jobId); jobs.replace(jobId, jobInfo.copy().setLastUpdated(jobMessage.getTimestamp()).addMessage(jobMessage).build()); }
@Override public void setLastUpdate(String jobId, OffsetDateTime lastUpdate) { JobInfo jobInfo = jobs.get(jobId); jobs.replace(jobId, jobInfo.copy().setLastUpdated(lastUpdate).build()); }
private JobInfo.Builder defaultJobInfo() { return newJobInfo(JOB_ID, JOB_TYPE, clock, HOSTNAME).copy(); }
public final String getMetaAsString(final String key) { checkKey(key); return getMetaAsString(key, null); }
public final Instant getMetaAsInstant(final String key) { checkKey(key); return getMetaAsInstant(key, null); }
public String getJobType() { return job.getJobType(); }
public String getState() { return job.isStopped() ? "Stopped" : "Running"; }
public String getComment() { return jobMeta != null ? jobMeta.getDisabledComment() : ""; }
public boolean getIsDisabled() { return jobMeta != null && jobMeta.isDisabled(); }
public String getHostname() { return job.getHostname(); }
@Override public int hashCode() { return job != null ? job.hashCode() : 0; }
public static Builder builder() { return new Builder(); } public Builder copy() {
public static JobMessage jobMessage(final Level level, final String message, final OffsetDateTime ts) { return new JobMessage(level, message, ts); }
@Override protected final String keyOf(final JobInfo value) { return value.getJobId(); }
public String getId() { return job.getJobId(); }