Use Sone comparator.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Sone.java
index 0afbf3b..145dca4 100644 (file)
@@ -183,7 +183,6 @@ public class Sone {
                        logger.log(Level.WARNING, "Request URI %s tried to overwrite %s!", new Object[] { requestUri, this.requestUri });
                        return this;
                }
-               setLatestEdition(requestUri.getEdition());
                return this;
        }
 
@@ -193,7 +192,7 @@ public class Sone {
         * @return The insert URI of this Sone
         */
        public FreenetURI getInsertUri() {
-               return insertUri.setSuggestedEdition(latestEdition);
+               return (insertUri != null) ? insertUri.setSuggestedEdition(latestEdition) : null;
        }
 
        /**
@@ -212,7 +211,6 @@ public class Sone {
                        logger.log(Level.WARNING, "Request URI %s tried to overwrite %s!", new Object[] { insertUri, this.insertUri });
                        return this;
                }
-               setLatestEdition(insertUri.getEdition());
                return this;
        }
 
@@ -293,17 +291,7 @@ public class Sone {
         */
        public List<Sone> getFriends() {
                List<Sone> friends = new ArrayList<Sone>(friendSones);
-               Collections.sort(friends, new Comparator<Sone>() {
-
-                       @Override
-                       public int compare(Sone leftSone, Sone rightSone) {
-                               int diff = SoneAccessor.getNiceName(leftSone).compareToIgnoreCase(SoneAccessor.getNiceName(rightSone));
-                               if (diff != 0) {
-                                       return diff;
-                               }
-                               return (int) Math.max(Integer.MIN_VALUE, Math.min(Integer.MAX_VALUE, rightSone.getTime() - leftSone.getTime()));
-                       }
-               });
+               Collections.sort(friends, NICE_NAME_COMPARATOR);
                return friends;
        }
 
@@ -364,15 +352,11 @@ public class Sone {
         * @return All posts of this Sone
         */
        public List<Post> getPosts() {
-               List<Post> sortedPosts = new ArrayList<Post>(posts);
-               Collections.sort(sortedPosts, new Comparator<Post>() {
-
-                       @Override
-                       public int compare(Post leftPost, Post rightPost) {
-                               return (int) Math.max(Integer.MIN_VALUE, Math.min(Integer.MAX_VALUE, rightPost.getTime() - leftPost.getTime()));
-                       }
-
-               });
+               List<Post> sortedPosts;
+               synchronized (this) {
+                       sortedPosts = new ArrayList<Post>(posts);
+               }
+               Collections.sort(sortedPosts, Post.TIME_COMPARATOR);
                return sortedPosts;
        }
 
@@ -422,7 +406,6 @@ public class Sone {
         * @return All replies this Sone made
         */
        public Set<Reply> getReplies() {
-               logger.log(Level.FINEST, "Friends of %s: %s", new Object[] { this, friendSones });
                return Collections.unmodifiableSet(replies);
        }