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=84d8198b4861ba2dcf6ad46b169ae4b3b7e99ca8;hpb=ed0ac504a54683d3063c5cf37fc1a282836f8743;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 84d8198..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}. * @@ -24,10 +27,22 @@ public class ConfigurationLoader { 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(""); + } + }