From e01e6d75d5667a723b6aebd0abfebe323514f7fa Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sat, 08 Dec 2018 21:45:41 +0000
Subject: [PATCH] refactoring...

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/AbstractCache.java |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/AbstractCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/AbstractCache.java
index 840be70..0b70220 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/AbstractCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/AbstractCache.java
@@ -3,6 +3,7 @@
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import de.micromata.borgbutler.json.JsonUtils;
+import de.micromata.borgbutler.json.borg.RepositoryMatcher;
 import lombok.Getter;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
@@ -38,11 +39,26 @@
         return null;
     }
 
-    public abstract boolean matches(T element, String identifier);
+    public boolean matches(T element, String identifier) {
+        if (!(element instanceof RepositoryMatcher)) {
+            throw new UnsupportedOperationException("matches not implemented, only available for RepositoryMatcher: " + this.getClass());
+        }
+        return ((RepositoryMatcher) element).matches(identifier);
+    }
 
-    public abstract String getIdentifier(T element);
+    public String getIdentifier(T element) {
+        if (!(element instanceof RepositoryMatcher)) {
+            throw new UnsupportedOperationException("matches not implemented, only available for RepositoryMatcher: " + this.getClass());
+        }
+        return ((RepositoryMatcher)element).getRepository().getId();
+    }
 
-    public abstract void updateFrom(T dest, T source);
+    public void updateFrom(T dest, T source) {
+        if (!(dest instanceof RepositoryMatcher)) {
+            throw new UnsupportedOperationException("matches not implemented, only available for RepositoryMatcher: " + this.getClass());
+        }
+        ((RepositoryMatcher)dest).updateFrom(((RepositoryMatcher)source));
+    }
 
     /**
      * Removes all entries (doesn't effect the cache files!).

--
Gitblit v1.10.0