package de.micromata.borgbutler.server.rest.queue;
|
|
import de.micromata.borgbutler.BorgJob;
|
import de.micromata.borgbutler.jobs.AbstractJob;
|
import de.micromata.borgbutler.json.borg.ProgressMessage;
|
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
|
private String description;
|
@Getter
|
@Setter
|
private String progressText;
|
@Setter
|
@Getter
|
private ProgressMessage progressMessage;
|
@Getter
|
private String commandLineAsString;
|
|
public JsonJob() {
|
}
|
|
public JsonJob(BorgJob<?> borgJob) {
|
this.cancellationRequested = borgJob.isCancellationRequested();
|
this.status = borgJob.getStatus();
|
this.title = borgJob.getTitle();
|
ProgressMessage progressMessage = borgJob.getProgressMessage();
|
if (progressMessage != null) {
|
this.progressMessage = progressMessage;
|
this.progressText = progressMessageToString();
|
}
|
this.commandLineAsString = borgJob.getCommandLineAsString();
|
this.description = borgJob.getDescription();
|
}
|
|
public String progressMessageToString() {
|
if (progressMessage == null) {
|
return "";
|
}
|
StringBuilder sb = new StringBuilder();
|
if (progressMessage.getMessage()!= null) {
|
sb.append(progressMessage.getMessage());
|
}
|
if (progressMessage.getCurrent() > 0) {
|
sb.append(" (").append(UserUtils.formatNumber(progressMessage.getCurrent()));
|
if (progressMessage.getTotal() > 0) {
|
sb.append("/").append(UserUtils.formatNumber(progressMessage.getTotal()));
|
}
|
sb.append(")");
|
}
|
if (progressMessage.isFinished()) {
|
sb.append(" (finished)");
|
}
|
sb.append(".");
|
return sb.toString();
|
}
|
|
}
|