X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FConfigurationLoader.java;h=e65cf48117aa5d8ee409b68a2afbd12ed5d01dfd;hb=b282ae4881da1f8329fded3369bc08d6aaee6e7b;hp=fe231539d6f19ed420e46ebb8ce80f934c2cd139;hpb=723de3522aa5c04634932f05bf4075304979c7a9;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 fe23153..e65cf48 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java @@ -2,6 +2,7 @@ package net.pterodactylus.sone.database.memory; import static java.util.logging.Level.WARNING; +import java.util.Collection; import java.util.HashSet; import java.util.Set; import java.util.logging.Logger; @@ -9,6 +10,8 @@ import java.util.logging.Logger; import net.pterodactylus.util.config.Configuration; import net.pterodactylus.util.config.ConfigurationException; +import com.google.common.base.Optional; + /** * Helper class for interacting with a {@link Configuration}. * @@ -17,17 +20,29 @@ import net.pterodactylus.util.config.ConfigurationException; public class ConfigurationLoader { private static final Logger logger = - Logger.getLogger(ConfigurationLoader.class.getName()); + Logger.getLogger("Sone.Database.Memory.Configuration"); private final Configuration configuration; public ConfigurationLoader(Configuration configuration) { this.configuration = configuration; } + public synchronized Set loadFriends(String localSoneId) { + return loadIds("Sone/" + localSoneId + "/Friends"); + } + + public void saveFriends(String soneId, Collection friends) { + saveIds("Sone/" + soneId + "/Friends", friends); + } + public synchronized Set loadKnownPosts() { return loadIds("KnownPosts"); } + public synchronized void saveKnownPosts(Set knownPosts) { + saveIds("KnownPosts", knownPosts); + } + public synchronized Set loadKnownPostReplies() { return loadIds("KnownReplies"); } @@ -56,10 +71,10 @@ public class ConfigurationLoader { saveIds("Bookmarks/Post", bookmarkedPosts); } - private void saveIds(String prefix, Set bookmarkedPosts) { + private void saveIds(String prefix, Collection ids) { try { int idCounter = 0; - for (String id : bookmarkedPosts) { + for (String id : ids) { configuration .getStringValue(prefix + "/" + idCounter++ + "/ID") .setValue(id); @@ -72,4 +87,13 @@ public class ConfigurationLoader { } } + public long getLocalSoneTime(String localSoneId) { + Long time = configuration.getLongValue("Sone/" + localSoneId + "/Time").getValue(null); + return Optional.fromNullable(time).or(-1L); + } + + public String getLastInsertFingerprint(String localSoneId) { + return configuration.getStringValue("Sone/" + localSoneId + "/LastInsertFingerprint").getValue(""); + } + }