From ca9a2a724bafac435ddc549469e510810ee31584 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 14 Oct 2010 12:21:08 +0200 Subject: [PATCH] Store all replies of a Sone in the Sone. --- .../java/net/pterodactylus/sone/data/Sone.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java index dbe1b35..6c50462 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -58,6 +58,9 @@ public class Sone { /** All posts. */ private final List posts = new ArrayList(); + /** All replies. */ + private final Set replies = new HashSet(); + /** Modification count. */ private volatile long modificationCounter = 0; @@ -242,6 +245,40 @@ public class Sone { } /** + * Returns all replies this Sone made. + * + * @return All replies this Sone made + */ + public Set getReplies() { + return Collections.unmodifiableSet(replies); + } + + /** + * Adds a reply to this Sone. If the given reply was not made by this Sone, + * nothing is added to this Sone. + * + * @param reply + * The reply to add + */ + public synchronized void addReply(Reply reply) { + if (reply.getSone().equals(this) && replies.add(reply)) { + modificationCounter++; + } + } + + /** + * Removes a reply from this Sone. + * + * @param reply + * The reply to remove + */ + public synchronized void removeReply(Reply reply) { + if (reply.getSone().equals(this) && replies.remove(reply)) { + modificationCounter++; + } + } + + /** * Returns the modification counter. * * @return The modification counter -- 2.7.4