package de.micromata.borgbutler.server.rest.queue;
|
|
import de.micromata.borgbutler.BorgJob;
|
import de.micromata.borgbutler.jobs.AbstractJob;
|
import de.micromata.borgbutler.json.borg.ProgressInfo;
|
import de.micromata.borgbutler.server.user.UserUtils;
|
import lombok.Getter;
|
import lombok.Setter;
|
|
public class JsonJob {
|
@Getter
|
@Setter
|
private boolean cancellationRequested;
|
@Getter
|
@Setter
|
private AbstractJob.Status status;
|
@Getter
|
@Setter
|
private String title;
|
@Getter
|
@Setter
|
private String description;
|
@Getter
|
@Setter
|
private String progressText;
|
@Getter
|
@Setter
|
private ProgressInfo progressInfo;
|
@Getter
|
@Setter
|
private String commandLineAsString;
|
|
public JsonJob() {
|
}
|
|
public JsonJob(BorgJob<?> borgJob) {
|
this.cancellationRequested = borgJob.isCancellationRequested();
|
this.status = borgJob.getStatus();
|
this.title = borgJob.getTitle();
|
ProgressInfo progressInfo = borgJob.getProgressInfo();
|
if (progressInfo != null) {
|
this.progressInfo = progressInfo;
|
buildProgressText();
|
}
|
this.commandLineAsString = borgJob.getCommandLineAsString();
|
this.description = borgJob.getDescription();
|
}
|
|
/**
|
* Builds and sets progressText from the progressInfo object if given.
|
* @return progressText
|
*/
|
public String buildProgressText() {
|
if (progressInfo == null) {
|
return "";
|
}
|
StringBuilder sb = new StringBuilder();
|
if (progressInfo.getMessage() != null) {
|
sb.append(progressInfo.getMessage());
|
}
|
if (progressInfo.getCurrent() > 0) {
|
sb.append(" (").append(UserUtils.formatNumber(progressInfo.getCurrent()));
|
if (progressInfo.getTotal() > 0) {
|
sb.append("/").append(UserUtils.formatNumber(progressInfo.getTotal()));
|
}
|
sb.append(")");
|
}
|
if (progressInfo.isFinished()) {
|
sb.append(" (finished)");
|
}
|
sb.append(".");
|
progressText = sb.toString();
|
return progressText;
|
}
|
|
}
|