X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=8d270c3b09e4fd914220acc7bc034b59cc42df25;hb=83f434470c6fb4d604c04a69c873d30b5fac5ec9;hp=96b1287fffbb345b8c7cd4432449423f9967347c;hpb=34f280d8ca0fd772f8cde42458362252e9c0c2f7;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 96b1287..8d270c3 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -22,8 +22,10 @@ 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; import java.util.Comparator; import java.util.List; import java.util.Set; @@ -33,13 +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.freenet.wot.OwnIdentity; -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,11 +100,10 @@ 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(); } }; @@ -157,7 +158,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable { @Override public boolean apply(Sone sone) { - return (sone == null) ? false : sone.getIdentity() instanceof OwnIdentity; + return (sone == null) ? false : sone.isLocal(); } }; @@ -178,6 +179,13 @@ public interface Sone extends Identified, Fingerprintable, Comparable { } }; + public static final Function> TO_POSTS = new Function>() { + @Override + public List apply(Sone sone) { + return (sone == null) ? Collections.emptyList() : sone.getPosts(); + } + }; + /** * Returns the identity of this Sone. * @@ -200,38 +208,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { boolean isLocal(); /** - * Returns the request URI of this Sone. - * - * @return The request URI of this Sone - */ - FreenetURI getRequestUri(); - - /** - * Sets the request URI of this Sone. - * - * @param requestUri - * The request URI of this Sone - * @return This Sone (for method chaining) - */ - Sone setRequestUri(FreenetURI requestUri); - - /** - * Returns the insert URI of this Sone. - * - * @return The insert URI of this Sone - */ - FreenetURI getInsertUri(); - - /** - * Sets the insert URI of this Sone. - * - * @param insertUri - * The insert URI of this Sone - * @return This Sone (for method chaining) - */ - Sone setInsertUri(FreenetURI insertUri); - - /** * Returns the latest edition of this Sone. * * @return The latest edition of this Sone @@ -239,16 +215,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { long getLatestEdition(); /** - * Sets the latest edition of this Sone. If the given latest edition is not - * greater than the current latest edition, the latest edition of this Sone is - * not changed. - * - * @param latestEdition - * The latest edition of this Sone - */ - void setLatestEdition(long latestEdition); - - /** * Return the time of the last inserted update of this Sone. * * @return The time of the update (in milliseconds since Jan 1, 1970 UTC) @@ -309,15 +275,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { Client getClient(); /** - * Sets the client used by this Sone. - * - * @param client - * The client used by this Sone, or {@code null} - * @return This Sone (for method chaining) - */ - Sone setClient(Client client); - - /** * Returns whether this Sone is known. * * @return {@code true} if this Sone is known, {@code false} otherwise @@ -338,7 +295,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. @@ -451,34 +408,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 @@ -495,34 +424,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 @@ -551,4 +452,13 @@ public interface Sone extends Identified, Fingerprintable, Comparable { PostReplyBuilder newPostReplyBuilder(String postId) throws IllegalStateException; + Modifier modify(); + + interface Modifier { + + Modifier setLatestEdition(long latestEdition); + Sone update(); + + } + }