From 4ece88750272b3e2fc0bbccec7202d2faa1115b8 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 08 Dec 2018 23:32:11 +0000
Subject: [PATCH] cache refactored.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java
index 2e41324..d6f360d 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/RepoInfoCache.java
@@ -1,5 +1,7 @@
 package de.micromata.borgbutler.cache;
 
+import de.micromata.borgbutler.BorgCommands;
+import de.micromata.borgbutler.config.BorgRepoConfig;
 import de.micromata.borgbutler.json.borg.RepoInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -8,7 +10,29 @@
 
 public class RepoInfoCache extends AbstractCache<RepoInfo> {
     private static Logger log = LoggerFactory.getLogger(RepoInfoCache.class);
-    public static final String CACHE_REPOS_BASENAME = "repos";
+    public static final String CACHE_REPOS_BASENAME = "repo-infos";
+
+    @Override
+    protected RepoInfo load(BorgRepoConfig repoConfig, String identifier) {
+        RepoInfo repoInfo = BorgCommands.info(repoConfig);
+        this.elements.put(getIdentifier(repoInfo), repoInfo);
+        return repoInfo;
+    }
+
+    @Override
+    public boolean matches(RepoInfo element, String identifier) {
+        return element.matches(identifier);
+    }
+
+    @Override
+    public String getIdentifier(RepoInfo element) {
+        return element.getRepository().getId();
+    }
+
+    @Override
+    public void updateFrom(RepoInfo dest, RepoInfo source) {
+        dest.updateFrom(source);
+    }
 
     /**
      * Needed by jackson for deserialization.

--
Gitblit v1.10.0