+ return ids;
+ }
+
+ public synchronized void saveBookmarkedPosts(
+ Set<String> bookmarkedPosts) {
+ saveIds("Bookmarks/Post", bookmarkedPosts);
+ }
+
+ private void saveIds(String prefix, Collection<String> ids) {
+ try {
+ int idCounter = 0;
+ for (String id : ids) {
+ 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);
+ }
+ }
+
+ 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("");