Add method to save bookmarked posts to configuration loader.
[Sone.git] / src / main / java / net / pterodactylus / sone / database / memory / ConfigurationLoader.java
index b9ac859..fe23153 100644 (file)
@@ -1,9 +1,13 @@
 package net.pterodactylus.sone.database.memory;
 
+import static java.util.logging.Level.WARNING;
+
 import java.util.HashSet;
 import java.util.Set;
+import java.util.logging.Logger;
 
 import net.pterodactylus.util.config.Configuration;
+import net.pterodactylus.util.config.ConfigurationException;
 
 /**
  * Helper class for interacting with a {@link Configuration}.
@@ -12,6 +16,8 @@ import net.pterodactylus.util.config.Configuration;
  */
 public class ConfigurationLoader {
 
+       private static final Logger logger =
+                       Logger.getLogger(ConfigurationLoader.class.getName());
        private final Configuration configuration;
 
        public ConfigurationLoader(Configuration configuration) {
@@ -45,4 +51,25 @@ public class ConfigurationLoader {
                return ids;
        }
 
+       public synchronized void saveBookmarkedPosts(
+                       Set<String> bookmarkedPosts) {
+               saveIds("Bookmarks/Post", bookmarkedPosts);
+       }
+
+       private void saveIds(String prefix, Set<String> bookmarkedPosts) {
+               try {
+                       int idCounter = 0;
+                       for (String id : bookmarkedPosts) {
+                               configuration
+                                               .getStringValue(prefix + "/" + idCounter++ + "/ID")
+                                               .setValue(id);
+                       }
+                       configuration
+                                       .getStringValue(prefix + "/" + idCounter + "/ID")
+                                       .setValue(null);
+               } catch (ConfigurationException ce1) {
+                       logger.log(WARNING, "Could not save bookmarked posts!", ce1);
+               }
+       }
+
 }