X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=2bb5a3e204af7e475c7af9ec2117eabc46adc8d2;hb=62ebf3da00001abb841c92128c4fdb57d0795ee2;hp=3ff0d3bac6e8141c50bfd4889d14a70912dcf9ee;hpb=0f4f5d0cfaf08989dd8fec15ac7a2d12a6d4636d;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java index 3ff0d3b..2bb5a3e 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -82,7 +82,7 @@ public class Sone { private volatile Profile profile; /** All friend Sones. */ - private final Set friendSones = Collections.synchronizedSet(new HashSet()); + private final Set friendSones = Collections.synchronizedSet(new HashSet()); /** All posts. */ private final Set posts = Collections.synchronizedSet(new HashSet()); @@ -164,7 +164,7 @@ public class Sone { * @return The request URI of this Sone */ public FreenetURI getRequestUri() { - return requestUri.setSuggestedEdition(latestEdition); + return (requestUri != null) ? requestUri.setSuggestedEdition(latestEdition) : null; } /** @@ -289,19 +289,8 @@ public class Sone { * * @return The friend Sones of this Sone */ - public List getFriends() { - List friends = new ArrayList(friendSones); - Collections.sort(friends, new Comparator() { - - @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())); - } - }); + public List getFriends() { + List friends = new ArrayList(friendSones); return friends; } @@ -312,7 +301,7 @@ public class Sone { * The new (and only) friends of this Sone * @return This Sone (for method chaining) */ - public Sone setFriends(Collection friends) { + public Sone setFriends(Collection friends) { friendSones.clear(); friendSones.addAll(friends); return this; @@ -337,8 +326,8 @@ public class Sone { * The friend Sone to add * @return This Sone (for method chaining) */ - public Sone addFriend(Sone friendSone) { - if (!friendSone.equals(this)) { + public Sone addFriend(String friendSone) { + if (!friendSone.equals(id)) { friendSones.add(friendSone); } return this; @@ -362,15 +351,11 @@ public class Sone { * @return All posts of this Sone */ public List getPosts() { - List sortedPosts = new ArrayList(posts); - Collections.sort(sortedPosts, new Comparator() { - - @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 sortedPosts; + synchronized (this) { + sortedPosts = new ArrayList(posts); + } + Collections.sort(sortedPosts, Post.TIME_COMPARATOR); return sortedPosts; } @@ -419,7 +404,7 @@ public class Sone { * * @return All replies this Sone made */ - public Set getReplies() { + public synchronized Set getReplies() { return Collections.unmodifiableSet(replies); } @@ -635,7 +620,7 @@ public class Sone { */ @Override public String toString() { - return getClass().getName() + "[identity=" + identity + ",requestUri=" + requestUri + ",insertUri=" + insertUri + ",friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + ")]"; + return getClass().getName() + "[identity=" + identity + ",requestUri=" + requestUri + ",insertUri(" + String.valueOf(insertUri).length() + "),friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + ")]"; } }