From 60b424b101e42fa1aadb9300f32a842c9681a092 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 15 Dec 2018 22:39:43 +0000
Subject: [PATCH] Only one JCS cache for repositories containing also archives.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/data/Archive.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/Archive.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/Archive.java
index 14c6f7b..0d2547a 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/Archive.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/Archive.java
@@ -5,16 +5,32 @@
 import de.micromata.borgbutler.json.borg.BorgEncryption;
 import lombok.Getter;
 import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.Serializable;
 
 /**
  *
  */
-public class Archive implements Serializable {
+public class Archive implements Serializable, Comparable<Archive> {
+    /**
+     * For convenience purposes for the client.
+     */
     @Getter
     @Setter
-    private Repository repository;
+    private String repoName;
+    /**
+     * For convenience purposes for the client.
+     */
+    @Getter
+    @Setter
+    private String repoId;
+    @Getter
+    @Setter
+    private String name;
+    @Getter
+    @Setter
+    private String id;
     @Getter
     @Setter
     private BorgCache cache;
@@ -39,6 +55,40 @@
     private String start;
     @Getter
     @Setter
+    private String time;
+    @Getter
+    @Setter
     private BorgArchiveStats stats;
+    @Getter
+    @Setter
+    private String username;
 
+    /**
+     *
+     * @return repoName::archiveName
+     */
+    public String getBorgIdentifier() {
+        return repoName + "::" + name;
+    }
+
+    /**
+     * Is <tt>borg info repo::archive</tt> already called for this archive?
+     *
+     * @return true, if borg info was called, otherwise false.
+     */
+    public boolean hasInfoData() {
+        return commandLine != null && commandLine.length > 0;
+    }
+
+    /**
+     * In reverse order, compares times.
+     *
+     * @param o
+     * @return
+     */
+    @Override
+    public int compareTo(Archive o) {
+        // Reverse order:
+        return StringUtils.compare(o.time, this.time);
+    }
 }

--
Gitblit v1.10.0