mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
28.55.2018 66bf65a49dba5df6ffbf865bc6cac9afba41ead1
borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java
@@ -12,11 +12,11 @@
public abstract class AbstractJob<T> {
    private Logger logger = LoggerFactory.getLogger(AbstractJob.class);
    public enum Status {DONE, RUNNING, QUEUED, STOPPED, FAILED}
    public enum Status {DONE, RUNNING, QUEUED, CANCELLED, FAILED}
    @Getter
    @Setter
    private boolean stopRequested;
    private boolean cancelledRequested;
    @Getter
    @Setter(AccessLevel.PACKAGE)
@@ -31,7 +31,18 @@
    @Setter(AccessLevel.PACKAGE)
    private Future<T> future;
    public T waitForResult() {
    public void cancel() {
        if (this.getStatus() == Status.QUEUED) {
            this.status = Status.CANCELLED;
        }
        this.cancelledRequested = true;
    }
    /**
     * Waits for and gets the result.
     * @return
     */
    public T getResult() {
        try {
            return future.get();
        } catch (InterruptedException | ExecutionException ex) {
@@ -51,7 +62,7 @@
     * @return true, if the job is done, stopped or failed. Otherwise false (if job is running or queued).
     */
    public boolean isFinished() {
        if (status == Status.DONE || status == Status.STOPPED || status == Status.FAILED) {
        if (status == Status.DONE || status == Status.CANCELLED || status == Status.FAILED) {
            return true;
        }
        return false;