X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FSoneImpl.java;h=2ca73a2143e9c0adab8ec73d1ea05a00bfc25061;hb=b10dc3573e2bf5c053d62c85b7ce19f9488d6a3c;hp=24792763c471032b345278998095d8ab3ae97cc0;hpb=90d193f69c4aa12c232f937a9d2b7d5afdda81dd;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java b/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java index 2479276..2ca73a2 100644 --- a/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java @@ -25,7 +25,6 @@ import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; @@ -49,6 +48,7 @@ import net.pterodactylus.sone.freenet.wot.OwnIdentity; import freenet.keys.FreenetURI; import com.google.common.collect.FluentIterable; +import com.google.common.collect.ImmutableSet; import com.google.common.hash.Hasher; import com.google.common.hash.Hashing; @@ -95,10 +95,10 @@ public class SoneImpl implements LocalSone { private volatile boolean known; /** All posts. */ - private final Collection posts = new HashSet(); + private final ImmutableSet posts; /** All replies. */ - private final Set replies = new CopyOnWriteArraySet(); + private final ImmutableSet replies; /** The IDs of all liked posts. */ private final Set likedPostIds = new CopyOnWriteArraySet(); @@ -121,14 +121,15 @@ public class SoneImpl implements LocalSone { * @param local * {@code true} if the Sone is a local Sone, {@code false} otherwise */ - public SoneImpl(Database database, Identity identity, boolean local, long time, Client client, Collection posts) { + public SoneImpl(Database database, Identity identity, boolean local, long time, Client client, Collection posts, Collection postReplies) { this.database = database; this.id = identity.getId(); this.identity = identity; this.local = local; this.time = time; this.client = client; - this.posts.addAll(posts); + this.posts = ImmutableSet.copyOf(posts); + this.replies = ImmutableSet.copyOf(postReplies); } // @@ -357,45 +358,7 @@ public class SoneImpl implements LocalSone { * @return All posts of this Sone */ public List getPosts() { - synchronized (this) { - return FluentIterable.from(posts).toSortedList(Post.TIME_COMPARATOR); - } - } - - /** - * Sets all posts of this Sone at once. - * - * @param posts - * The new (and only) posts of this Sone - * @return This Sone (for method chaining) - */ - public Sone setPosts(Collection posts) { - return this; - } - - /** - * Adds the given post to this Sone. The post will not be added if its {@link - * Post#getSone() Sone} is not this Sone. - * - * @param post - * The post to add - */ - public void addPost(Post post) { - if (post.getSone().equals(this) && posts.add(post)) { - logger.log(Level.FINEST, String.format("Adding %s to “%s”.", post, getName())); - } - } - - /** - * Removes the given post from this Sone. - * - * @param post - * The post to remove - */ - public void removePost(Post post) { - if (post.getSone().equals(this)) { - posts.remove(post); - } + return FluentIterable.from(posts).toSortedList(Post.TIME_COMPARATOR); } /**