X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FConfigurationLoader.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FConfigurationLoader.java;h=0e37dabbf57e0e5702f21087bc79e587bc64de22;hp=fa8a362569dd3977023d3621d28d88bb3ee76a62;hb=722b47810ffbe01465f104791c9f660ae161023b;hpb=0aa389b2493e19484530698e2ce056372dc2a1e9 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 fa8a362..0e37dab 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/ConfigurationLoader.java @@ -3,7 +3,10 @@ package net.pterodactylus.sone.database.memory; import static java.util.logging.Level.WARNING; import java.util.Collection; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.logging.Logger; @@ -43,6 +46,37 @@ public class ConfigurationLoader { saveIds("KnownSones", knownSones); } + public synchronized Map loadSoneFollowingTimes() { + Map soneFollowingTimes = new HashMap(); + int counter = 0; + while (true) { + String soneId = configuration.getStringValue("SoneFollowingTimes/" + counter + "/Sone").getValue(null); + if (soneId == null) { + break; + } + long followingTime = configuration.getLongValue("SoneFollowingTimes/" + counter + "/Time").getValue(Long.MAX_VALUE); + soneFollowingTimes.put(soneId, followingTime); + counter++; + } + return soneFollowingTimes; + } + + public synchronized void saveSoneFollowingTimes(Map soneFollowingTimes) { + try { + int counter = 0; + for (Entry soneFollowingTime : soneFollowingTimes.entrySet()) { + configuration.getStringValue("SoneFollowingTimes/" + counter + "/Sone") + .setValue(soneFollowingTime.getKey()); + configuration.getLongValue("SoneFollowingTimes/" + counter + "/Time") + .setValue(soneFollowingTime.getValue()); + counter++; + } + configuration.getStringValue("SoneFollowingTimes/" + counter + "/Sone").setValue(null); + } catch (ConfigurationException ce1) { + logger.log(WARNING, "Could not save Sone following times!", ce1); + } + } + public synchronized Set loadKnownPosts() { return loadIds("KnownPosts"); }