From 072b27a0e1f0ec459f388f5b62a82cd42c2476db Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 28 Dec 2018 10:19:14 +0000
Subject: [PATCH] Job queuing...

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/jobs/AbstractJob.java |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 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 e1cd523..743c175 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
@@ -1,5 +1,6 @@
 package de.micromata.borgbutler.jobs;
 
+import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -10,6 +11,7 @@
     private boolean stopRequested;
 
     @Getter
+    @Setter(AccessLevel.PACKAGE)
     private Status status;
     @Getter
     @Setter
@@ -21,10 +23,23 @@
     @Setter
     private String log;
 
-    protected void stopped() {
-        this.status = Status.STOPPED;
+    /**
+     *
+     * @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) {
+            return true;
+        }
+        return false;
     }
 
-    public abstract void execute() throws InterruptedException;
+    public abstract void execute();
 
+    /**
+     * A job is identified by this id. If a job with the same id is already queued (not yet finished), this job will
+     * not be added twice.
+     * @return
+     */
+    public abstract Object getId();
 }

--
Gitblit v1.10.0