X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=a8e80091596e7dce1786e638ade27db51cce51a2;hb=f10d40f746f6c7c716f783da11791d28c1117447;hp=93e05e8abb4b5f1532515e68687f4aa4a5a56465;hpb=f3de529dac23aff1f2378930cc5b68f43450a6b3;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 93e05e8..a8e8009 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -22,6 +22,7 @@ import static java.util.Arrays.asList; import static net.pterodactylus.sone.core.SoneUri.create; import static net.pterodactylus.sone.data.Album.FLATTENER; import static net.pterodactylus.sone.data.Album.IMAGES; +import static net.pterodactylus.sone.template.SoneAccessor.getNiceName; import java.util.Collection; import java.util.Collections; @@ -34,12 +35,13 @@ import net.pterodactylus.sone.database.AlbumBuilder; import net.pterodactylus.sone.database.PostBuilder; import net.pterodactylus.sone.database.PostReplyBuilder; import net.pterodactylus.sone.freenet.wot.Identity; -import net.pterodactylus.sone.template.SoneAccessor; + +import freenet.keys.FreenetURI; import com.google.common.base.Function; import com.google.common.base.Predicate; +import com.google.common.collect.ComparisonChain; import com.google.common.primitives.Ints; -import freenet.keys.FreenetURI; /** * A Sone defines everything about a user: her profile, her status updates, her @@ -98,15 +100,21 @@ public interface Sone extends Identified, Fingerprintable, Comparable { @Override public int compare(Sone leftSone, Sone rightSone) { - int diff = SoneAccessor.getNiceName(leftSone).compareToIgnoreCase(SoneAccessor.getNiceName(rightSone)); - if (diff != 0) { - return diff; - } - return leftSone.getId().compareToIgnoreCase(rightSone.getId()); + return ComparisonChain.start() + .compare(getNiceName(leftSone).toLowerCase(), getNiceName(rightSone).toLowerCase()) + .compare(leftSone.getId(), rightSone.getId()) + .result(); } }; + public static final Function TO_NICE_NAME = new Function() { + @Override + public String apply(Sone sone) { + return (sone == null) ? null : getNiceName(sone); + } + }; + /** Comparator that sorts Sones by last activity (least recent active first). */ public static final Comparator LAST_ACTIVITY_COMPARATOR = new Comparator() { @@ -294,7 +302,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable { * * @return The friend Sones of this Sone */ - List getFriends(); + Collection getFriends(); /** * Returns whether this Sone has the given Sone as a friend Sone. @@ -407,34 +415,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { Sone setLikePostIds(Set likedPostIds); /** - * Checks whether the given post ID is liked by this Sone. - * - * @param postId - * The ID of the post - * @return {@code true} if this Sone likes the given post, {@code false} - * otherwise - */ - boolean isLikedPostId(String postId); - - /** - * Adds the given post ID to the list of posts this Sone likes. - * - * @param postId - * The ID of the post - * @return This Sone (for method chaining) - */ - Sone addLikedPostId(String postId); - - /** - * Removes the given post ID from the list of posts this Sone likes. - * - * @param postId - * The ID of the post - * @return This Sone (for method chaining) - */ - Sone removeLikedPostId(String postId); - - /** * Returns the IDs of all liked replies. * * @return All liked replies’ IDs @@ -451,34 +431,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { Sone setLikeReplyIds(Set likedReplyIds); /** - * Checks whether the given reply ID is liked by this Sone. - * - * @param replyId - * The ID of the reply - * @return {@code true} if this Sone likes the given reply, {@code false} - * otherwise - */ - boolean isLikedReplyId(String replyId); - - /** - * Adds the given reply ID to the list of replies this Sone likes. - * - * @param replyId - * The ID of the reply - * @return This Sone (for method chaining) - */ - Sone addLikedReplyId(String replyId); - - /** - * Removes the given post ID from the list of replies this Sone likes. - * - * @param replyId - * The ID of the reply - * @return This Sone (for method chaining) - */ - Sone removeLikedReplyId(String replyId); - - /** * Returns the root album that contains all visible albums of this Sone. * * @return The root album of this Sone