From 34de8e3ff4872c7e48e78d1fa102aa029ac2b261 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 28 Dec 2018 02:10:33 +0000
Subject: [PATCH] It's a long way, but is it also useful?

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java |   28 +++++++++++++---------------
 1 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
index 4dceafd..3acdc82 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ButlerCache.java
@@ -187,7 +187,7 @@
         return archive;
     }
 
-    public List<BorgFilesystemItem> getArchiveContent(String archiveId) {
+    public List<FilesystemItem> getArchiveContent(String archiveId) {
         return getArchiveContent(archiveId, true, null);
     }
 
@@ -232,7 +232,7 @@
      * @param filter    If not null, the result will be filtered.
      * @return
      */
-    public List<BorgFilesystemItem> getArchiveContent(String archiveId, boolean forceLoad, FileSystemFilter filter) {
+    public List<FilesystemItem> getArchiveContent(String archiveId, boolean forceLoad, FileSystemFilter filter) {
         Archive archive = getArchive(archiveId);
         if (archive == null) {
             log.error("Can't find archive with id '" + archiveId + "'. May-be it doesn't exist or the archives of the target repository aren't yet loaded.");
@@ -247,7 +247,7 @@
      * @param archive
      * @return
      */
-    public List<BorgFilesystemItem> getArchiveContent(BorgRepoConfig repoConfig, Archive archive) {
+    public List<FilesystemItem> getArchiveContent(BorgRepoConfig repoConfig, Archive archive) {
         return getArchiveContent(repoConfig, archive, true, null);
     }
 
@@ -257,28 +257,26 @@
      * @param filter     If given, only the items matching this filter are returned..
      * @return
      */
-    public List<BorgFilesystemItem> getArchiveContent(BorgRepoConfig repoConfig, Archive archive, boolean forceLoad,
-                                                      FileSystemFilter filter) {
+    public List<FilesystemItem> getArchiveContent(BorgRepoConfig repoConfig, Archive archive, boolean forceLoad,
+                                                  FileSystemFilter filter) {
         if (archive == null || StringUtils.isBlank(archive.getName())) {
             return null;
         }
-        List<BorgFilesystemItem> items = archiveFilelistCache.load(repoConfig, archive, filter);
+        List<FilesystemItem> items = archiveFilelistCache.load(repoConfig, archive, filter);
         if (items == null && forceLoad) {
-            List<BorgFilesystemItem> list = BorgCommands.listArchiveContent(repoConfig, archive);
-            if (CollectionUtils.isNotEmpty(list)) {
-                archiveFilelistCache.save(repoConfig, archive, list);
+            List<BorgFilesystemItem> borgList = BorgCommands.listArchiveContent(repoConfig, archive);
+            FilesystemItem root =  Filesystem.build(borgList);
+            if (CollectionUtils.isNotEmpty(root.getChilds())) {
+                archiveFilelistCache.save(repoConfig, archive, root.getChilds());
                 items = new ArrayList<>();
-                int fileNumber = -1;
-                for (BorgFilesystemItem item : list) {
-                    ++fileNumber;
-                    item.setFileNumber(fileNumber);
+                for (FilesystemItem item : list) {
                     if (filter == null || filter.matches(item)) {
                         items.add(item);
                         if (filter != null && filter.isFinished()) break;
                     }
                 }
                 if (filter != null) {
-                    items = filter.reduce(items);
+                   // items = filter.reduce(items);
                 }
             }
         }
@@ -288,7 +286,7 @@
         return items;
     }
 
-    public List<BorgFilesystemItem> getArchiveContent(File file) {
+    public List<FilesystemItem> getArchiveContent(File file) {
         return archiveFilelistCache.load(file, null);
     }
 

--
Gitblit v1.10.0