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;
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;
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 CopyOnWriteArraySet<PostReply>();
+ private final ImmutableSet<PostReply> replies;
/** The IDs of all liked posts. */
private final Set<String> likedPostIds = new CopyOnWriteArraySet<String>();
* @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<Post> posts) {
+ public SoneImpl(Database database, Identity identity, boolean local, long time, Client client, Collection<Post> posts, Collection<PostReply> 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);
}
//