From 30e373ab9b7e6caae95ceaa4c26ebe997e06e0e1 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 25 Jan 2019 05:58:07 +0000
Subject: [PATCH] DemoRepos simplified.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java       |   40 +++++++---------------------------------
 borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java |    3 +--
 2 files changed, 8 insertions(+), 35 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
index 5ba55a6..10c9d85 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/config/Configuration.java
@@ -89,8 +89,7 @@
     }
 
     public List<BorgRepoConfig> getRepoConfigs() {
-        DemoRepos.handleDemoRepos(repoConfigs);
-        return repoConfigs;
+        return DemoRepos.getAllRepos(repoConfigs);
     }
 
     List<BorgRepoConfig> _getRepoConfigs() {
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
index 0426b1d..7675b55 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/demo/DemoRepos.java
@@ -33,43 +33,17 @@
      * If configured by the user, demo repositories are added to the given list. If not configured this method does nothing.
      *
      * @param repositoryList
+     * @return repo list including demo repos if configured. If not configured, the given list is returned (no op).
      */
-    public static void handleDemoRepos(List<BorgRepoConfig> repositoryList) {
+    public static  List<BorgRepoConfig> getAllRepos(List<BorgRepoConfig> repositoryList) {
         if (!ConfigurationHandler.getConfiguration().isShowDemoRepos()) {
-            // Remove any demo repository if exist due to former settings:
-            Iterator<BorgRepoConfig> it = repositoryList.iterator();
-            while (it.hasNext()) {
-                BorgRepoConfig repoConfig = it.next();
-                if (repoConfig != null && !StringUtils.startsWith(repoConfig.getRepo(), DEMO_IDENTIFIER)) {
-                    continue;
-                }
-                it.remove();
-            }
-            return;
+            return repositoryList;
         }
         init();
-        for (BorgRepoConfig repo : demoRepos) {
-            if (!repositoryList.contains(repo))
-                repositoryList.add(repo);
-        }
-        // Remove duplicate entries (produced by former versions of BorgButler:
-        Set<String> set = new HashSet<>();
-        Iterator<BorgRepoConfig> it = repositoryList.iterator();
-        try {
-            while (it.hasNext()) {
-                BorgRepoConfig repoConfig = it.next();
-                if (!StringUtils.startsWith(repoConfig.getRepo(), DEMO_IDENTIFIER)) {
-                    continue;
-                }
-                if (set.contains(repoConfig.getRepo())) {
-                    it.remove();
-                } else {
-                    set.add(repoConfig.getRepo());
-                }
-            }
-        } catch (Exception ex) {
-            // ConcurrentException, ignore it, it's only for demo purposes.
-        }
+        List<BorgRepoConfig> list = new ArrayList<>();
+        list.addAll(repositoryList);
+        list.addAll(demoRepos);
+        return list;
     }
 
     public static boolean isDemo(String name) {

--
Gitblit v1.10.0