Simplify sorting of posts.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / impl / SoneImpl.java
index eccce4b..44111aa 100644 (file)
@@ -47,6 +47,7 @@ import net.pterodactylus.sone.freenet.wot.OwnIdentity;
 
 import freenet.keys.FreenetURI;
 
+import com.google.common.collect.FluentIterable;
 import com.google.common.hash.Hasher;
 import com.google.common.hash.Hashing;
 
@@ -87,7 +88,7 @@ public class SoneImpl implements LocalSone {
        private volatile Profile profile = new Profile(this);
 
        /** The client used by the Sone. */
-       private volatile Client client;
+       private final Client client;
 
        /** Whether this Sone is known. */
        private volatile boolean known;
@@ -119,12 +120,13 @@ 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) {
+       public SoneImpl(Database database, Identity identity, boolean local, long time, Client client) {
                this.database = database;
                this.id = identity.getId();
                this.identity = identity;
                this.local = local;
                this.time = time;
+               this.client = client;
        }
 
        //
@@ -302,7 +304,6 @@ public class SoneImpl implements LocalSone {
         * @return This Sone (for method chaining)
         */
        public Sone setClient(Client client) {
-               this.client = client;
                return this;
        }
 
@@ -354,12 +355,9 @@ public class SoneImpl implements LocalSone {
         * @return All posts of this Sone
         */
        public List<Post> getPosts() {
-               List<Post> sortedPosts;
                synchronized (this) {
-                       sortedPosts = new ArrayList<Post>(posts);
+                       return FluentIterable.from(posts).toSortedList(Post.TIME_COMPARATOR);
                }
-               Collections.sort(sortedPosts, Post.TIME_COMPARATOR);
-               return sortedPosts;
        }
 
        /**