1 package net.pterodactylus.sone.database.memory;
3 import static java.util.logging.Level.WARNING;
5 import java.util.HashSet;
7 import java.util.logging.Logger;
9 import net.pterodactylus.util.config.Configuration;
10 import net.pterodactylus.util.config.ConfigurationException;
13 * Helper class for interacting with a {@link Configuration}.
15 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
17 public class ConfigurationLoader {
19 private static final Logger logger =
20 Logger.getLogger("Sone.Database.Memory.Configuration");
21 private final Configuration configuration;
23 public ConfigurationLoader(Configuration configuration) {
24 this.configuration = configuration;
27 public synchronized Set<String> loadKnownPosts() {
28 return loadIds("KnownPosts");
31 public synchronized Set<String> loadKnownPostReplies() {
32 return loadIds("KnownReplies");
35 public synchronized Set<String> loadBookmarkedPosts() {
36 return loadIds("Bookmarks/Post");
39 private Set<String> loadIds(String prefix) {
40 Set<String> ids = new HashSet<String>();
43 String id = configuration
44 .getStringValue(prefix + "/" + idCounter++ + "/ID")
54 public synchronized void saveBookmarkedPosts(
55 Set<String> bookmarkedPosts) {
56 saveIds("Bookmarks/Post", bookmarkedPosts);
59 private void saveIds(String prefix, Set<String> bookmarkedPosts) {
62 for (String id : bookmarkedPosts) {
64 .getStringValue(prefix + "/" + idCounter++ + "/ID")
68 .getStringValue(prefix + "/" + idCounter + "/ID")
70 } catch (ConfigurationException ce1) {
71 logger.log(WARNING, "Could not save bookmarked posts!", ce1);