X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=108b05c712b40f0ec033c40dadf6028a7d232f18;hp=7a978420a45a219c46526afab4cd19b4fe6f89de;hb=c03a4ced3dd1562f4387edb449680a6fd8b9a746;hpb=7b1a3e4378a632ad4b9e32373921cfad4fd91e8d diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 7a97842..108b05c 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -137,29 +137,18 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis /* synchronize access on this on itself. */ private Map remoteSones = new HashMap(); - /** All new Sones. */ - private Set newSones = new HashSet(); - /** All known Sones. */ - /* synchronize access on {@link #newSones}. */ private Set knownSones = new HashSet(); /** All posts. */ private Map posts = new HashMap(); - /** All new posts. */ - private Set newPosts = new HashSet(); - /** All known posts. */ - /* synchronize access on {@link #newPosts}. */ private Set knownPosts = new HashSet(); /** All replies. */ private Map replies = new HashMap(); - /** All new replies. */ - private Set newReplies = new HashSet(); - /** All known replies. */ private Set knownReplies = new HashSet(); @@ -504,19 +493,6 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } /** - * Returns whether the Sone with the given ID is a new Sone. - * - * @param soneId - * The ID of the sone to check for - * @return {@code true} if the given Sone is new, false otherwise - */ - public boolean isNewSone(String soneId) { - synchronized (newSones) { - return !knownSones.contains(soneId) && newSones.contains(soneId); - } - } - - /** * Returns whether the given Sone has been modified. * * @param sone @@ -593,20 +569,6 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } /** - * Returns whether the given post ID is new. - * - * @param postId - * The post ID - * @return {@code true} if the post is considered to be new, {@code false} - * otherwise - */ - public boolean isNewPost(String postId) { - synchronized (newPosts) { - return !knownPosts.contains(postId) && newPosts.contains(postId); - } - } - - /** * Returns all posts that have the given Sone as recipient. * * @see Post#getRecipient() @@ -684,20 +646,6 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } /** - * Returns whether the reply with the given ID is new. - * - * @param replyId - * The ID of the reply to check - * @return {@code true} if the reply is considered to be new, {@code false} - * otherwise - */ - public boolean isNewReply(String replyId) { - synchronized (newReplies) { - return !knownReplies.contains(replyId) && newReplies.contains(replyId); - } - } - - /** * Returns all Sones that have liked the given post. * * @param post @@ -915,6 +863,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } sone.setLatestEdition(Numbers.safeParseLong(ownIdentity.getProperty("Sone.LatestEdition"), (long) 0)); sone.setClient(new Client("Sone", SonePlugin.VERSION.toString())); + sone.setKnown(true); /* TODO - load posts ’n stuff */ localSones.put(ownIdentity.getId(), sone); final SoneInserter soneInserter = new SoneInserter(this, freenetInterface, sone); @@ -972,12 +921,10 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis sone.setRequestUri(getSoneUri(identity.getRequestUri())); sone.setLatestEdition(Numbers.safeParseLong(identity.getProperty("Sone.LatestEdition"), (long) 0)); if (newSone) { - synchronized (newSones) { + synchronized (knownSones) { newSone = !knownSones.contains(sone.getId()); - if (newSone) { - newSones.add(sone.getId()); - } } + sone.setKnown(!newSone); if (newSone) { coreListenerManager.fireNewSoneFound(sone); for (Sone localSone : getLocalSones()) { @@ -1219,14 +1166,14 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } } List storedPosts = storedSone.getPosts(); - synchronized (newPosts) { + synchronized (knownPosts) { for (Post post : sone.getPosts()) { - post.setSone(storedSone); + post.setSone(storedSone).setKnown(knownPosts.contains(post.getId())); if (!storedPosts.contains(post)) { if (post.getTime() < getSoneFollowingTime(sone)) { knownPosts.add(post.getId()); } else if (!knownPosts.contains(post.getId())) { - newPosts.add(post.getId()); + sone.setKnown(false); coreListenerManager.fireNewPostFound(post); } } @@ -1244,14 +1191,14 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } } Set storedReplies = storedSone.getReplies(); - synchronized (newReplies) { + synchronized (knownReplies) { for (PostReply reply : sone.getReplies()) { - reply.setSone(storedSone); + reply.setSone(storedSone).setKnown(knownReplies.contains(reply.getId())); if (!storedReplies.contains(reply)) { if (reply.getTime() < getSoneFollowingTime(sone)) { knownReplies.add(reply.getId()); } else if (!knownReplies.contains(reply.getId())) { - newReplies.add(reply.getId()); + reply.setKnown(false); coreListenerManager.fireNewReplyFound(reply); } } @@ -1353,12 +1300,13 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The Sone to mark as known */ public void markSoneKnown(Sone sone) { - synchronized (newSones) { - if (newSones.remove(sone.getId())) { + if (!sone.isKnown()) { + sone.setKnown(true); + synchronized (knownSones) { knownSones.add(sone.getId()); - coreListenerManager.fireMarkSoneKnown(sone); - touchConfiguration(); } + coreListenerManager.fireMarkSoneKnown(sone); + touchConfiguration(); } } @@ -1569,17 +1517,17 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis sone.setAlbums(topLevelAlbums); soneInserters.get(sone).setLastInsertFingerprint(lastInsertFingerprint); } - synchronized (newSones) { + synchronized (knownSones) { for (String friend : friends) { knownSones.add(friend); } } - synchronized (newPosts) { + synchronized (knownPosts) { for (Post post : posts) { knownPosts.add(post.getId()); } } - synchronized (newReplies) { + synchronized (knownReplies) { for (PostReply reply : replies) { knownReplies.add(reply.getId()); } @@ -1656,10 +1604,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis synchronized (posts) { posts.put(post.getId(), post); } - synchronized (newPosts) { - newPosts.add(post.getId()); - coreListenerManager.fireNewPostFound(post); - } + coreListenerManager.fireNewPostFound(post); sone.addPost(post); touchConfiguration(); localElementTicker.registerEvent(System.currentTimeMillis() + 10 * 1000, new Runnable() { @@ -1691,10 +1636,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis posts.remove(post.getId()); } coreListenerManager.firePostRemoved(post); - synchronized (newPosts) { - markPostKnown(post); - knownPosts.remove(post.getId()); - } + markPostKnown(post); touchConfiguration(); } @@ -1706,8 +1648,8 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The post to mark as known */ public void markPostKnown(Post post) { - synchronized (newPosts) { - newPosts.remove(post.getId()); + post.setKnown(true); + synchronized (knownPosts) { if (knownPosts.add(post.getId())) { coreListenerManager.fireMarkPostKnown(post); touchConfiguration(); @@ -1796,8 +1738,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis synchronized (replies) { replies.put(reply.getId(), reply); } - synchronized (newReplies) { - newReplies.add(reply.getId()); + synchronized (knownReplies) { coreListenerManager.fireNewReplyFound(reply); } sone.addReply(reply); @@ -1830,7 +1771,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis synchronized (replies) { replies.remove(reply.getId()); } - synchronized (newReplies) { + synchronized (knownReplies) { markReplyKnown(reply); knownReplies.remove(reply.getId()); } @@ -1846,8 +1787,8 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The reply to mark as known */ public void markReplyKnown(PostReply reply) { - synchronized (newReplies) { - newReplies.remove(reply.getId()); + reply.setKnown(true); + synchronized (knownReplies) { if (knownReplies.add(reply.getId())) { coreListenerManager.fireMarkReplyKnown(reply); touchConfiguration(); @@ -2232,7 +2173,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis /* save known Sones. */ int soneCounter = 0; - synchronized (newSones) { + synchronized (knownSones) { for (String knownSoneId : knownSones) { configuration.getStringValue("KnownSone/" + soneCounter++ + "/ID").setValue(knownSoneId); } @@ -2252,7 +2193,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis /* save known posts. */ int postCounter = 0; - synchronized (newPosts) { + synchronized (knownPosts) { for (String knownPostId : knownPosts) { configuration.getStringValue("KnownPosts/" + postCounter++ + "/ID").setValue(knownPostId); } @@ -2261,7 +2202,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis /* save known replies. */ int replyCounter = 0; - synchronized (newReplies) { + synchronized (knownReplies) { for (String knownReplyId : knownReplies) { configuration.getStringValue("KnownReplies/" + replyCounter++ + "/ID").setValue(knownReplyId); } @@ -2361,7 +2302,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis if (knownSoneId == null) { break; } - synchronized (newSones) { + synchronized (knownSones) { knownSones.add(knownSoneId); } } @@ -2392,7 +2333,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis if (knownPostId == null) { break; } - synchronized (newPosts) { + synchronized (knownPosts) { knownPosts.add(knownPostId); } } @@ -2404,7 +2345,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis if (knownReplyId == null) { break; } - synchronized (newReplies) { + synchronized (knownReplies) { knownReplies.add(knownReplyId); } } @@ -2534,19 +2475,17 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis return; } synchronized (posts) { - synchronized (newPosts) { + synchronized (knownPosts) { for (Post post : sone.getPosts()) { posts.remove(post.getId()); - newPosts.remove(post.getId()); coreListenerManager.firePostRemoved(post); } } } synchronized (replies) { - synchronized (newReplies) { + synchronized (knownReplies) { for (PostReply reply : sone.getReplies()) { replies.remove(reply.getId()); - newReplies.remove(reply.getId()); coreListenerManager.fireReplyRemoved(reply); } } @@ -2554,10 +2493,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis synchronized (remoteSones) { remoteSones.remove(identity.getId()); } - synchronized (newSones) { - newSones.remove(identity.getId()); - coreListenerManager.fireSoneRemoved(sone); - } + coreListenerManager.fireSoneRemoved(sone); } // @@ -2678,8 +2614,8 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * * @param insertionDelay * The insertion delay to validate - * @return {@code true} if the given insertion delay was valid, {@code - * false} otherwise + * @return {@code true} if the given insertion delay was valid, + * {@code false} otherwise */ public boolean validateInsertionDelay(Integer insertionDelay) { return options.getIntegerOption("InsertionDelay").validate(insertionDelay);