From 66bf65a49dba5df6ffbf865bc6cac9afba41ead1 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 28 Dec 2018 11:55:26 +0000
Subject: [PATCH] Job queueing...

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java
index 5827495..2670b98 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java
+++ b/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;

--
Gitblit v1.10.0