X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FConfigurationLoader.java;h=84d8198b4861ba2dcf6ad46b169ae4b3b7e99ca8;hb=81077b2ff62eb1c94d4215bbde324a0e9d03b561;hp=b9ac859fead3bde807e5c3c311491425a7dc63b8;hpb=d9ecda2e1e4411a0b5da8fb760091b6f659e961f;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java b/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java index b9ac859..84d8198 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java @@ -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("Sone.Database.Memory.Configuration"); private final Configuration configuration; public ConfigurationLoader(Configuration configuration) { @@ -45,4 +51,25 @@ public class ConfigurationLoader { return ids; } + public synchronized void saveBookmarkedPosts( + Set bookmarkedPosts) { + saveIds("Bookmarks/Post", bookmarkedPosts); + } + + private void saveIds(String prefix, Set 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); + } + } + }