Store posts and replies in immutable sets.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sun, 7 Dec 2014 10:42:13 +0000 (11:42 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sun, 7 Dec 2014 10:42:13 +0000 (11:42 +0100)
src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java

index eb8bbe5..2ca73a2 100644 (file)
@@ -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<Post> posts = new HashSet<Post>();
+       private final ImmutableSet<Post> posts;
 
        /** All replies. */
-       private final Set<PostReply> replies = new HashSet<PostReply>();
+       private final ImmutableSet<PostReply> replies;
 
        /** The IDs of all liked posts. */
        private final Set<String> likedPostIds = new CopyOnWriteArraySet<String>();
@@ -128,8 +128,8 @@ public class SoneImpl implements LocalSone {
                this.local = local;
                this.time = time;
                this.client = client;
-               this.posts.addAll(posts);
-               this.replies.addAll(postReplies);
+               this.posts = ImmutableSet.copyOf(posts);
+               this.replies = ImmutableSet.copyOf(postReplies);
        }
 
        //