X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=2cf8bf6a32d5f9addbe7f0c499bac053e9d10ab6;hb=ae7ed7856de14eb339e77ae86e6d4a8b9284162d;hp=1b76588502033fc45ca88cc57ad98873cbd9b24c;hpb=fdffe49b10613e1d9caacdf62ab99bca06edf3e1;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 1b76588..2cf8bf6 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -23,11 +23,11 @@ import static net.pterodactylus.sone.data.Album.FLATTENER; import static net.pterodactylus.sone.data.Album.IMAGES; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; -import javax.annotation.Nonnegative; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -182,6 +182,23 @@ public interface Sone extends Identified, Fingerprintable, Comparable { } }; + public static final Function> toAllAlbums = new Function>() { + @Override + public List apply(@Nullable Sone sone) { + return (sone == null) ? Collections.emptyList() : FLATTENER.apply( + sone.getRootAlbum()); + } + }; + + public static final Function> toAllImages = new Function>() { + @Override + public List apply(@Nullable Sone sone) { + return (sone == null) ? Collections.emptyList() : + from(FLATTENER.apply(sone.getRootAlbum())) + .transformAndConcat(IMAGES).toList(); + } + }; + /** * Returns the identity of this Sone. * @@ -190,18 +207,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { Identity getIdentity(); /** - * Sets the identity of this Sone. The {@link Identity#getId() ID} of the - * identity has to match this Sone’s {@link #getId()}. - * - * @param identity - * The identity of this Sone - * @return This Sone (for method chaining) - * @throws IllegalArgumentException - * if the ID of the identity does not match this Sone’s ID - */ - Sone setIdentity(Identity identity) throws IllegalArgumentException; - - /** * Returns the name of this Sone. * * @return The name of this Sone @@ -223,15 +228,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { 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 @@ -239,15 +235,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { 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 @@ -272,15 +259,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { long getTime(); /** - * Sets the time of the last inserted update of this Sone. - * - * @param time - * The time of the update (in milliseconds since Jan 1, 1970 UTC) - * @return This Sone (for method chaining) - */ - Sone setTime(long time); - - /** * Returns the status of this Sone. * * @return The status of this Sone @@ -325,15 +303,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 @@ -354,7 +323,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. @@ -367,24 +336,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { boolean hasFriend(String friendSoneId); /** - * Adds the given Sone as a friend Sone. - * - * @param friendSone - * The friend Sone to add - * @return This Sone (for method chaining) - */ - Sone addFriend(String friendSone); - - /** - * Removes the given Sone as a friend Sone. - * - * @param friendSoneId - * The ID of the friend Sone to remove - * @return This Sone (for method chaining) - */ - Sone removeFriend(String friendSoneId); - - /** * Returns the list of posts of this Sone, sorted by time, newest first. * * @return All posts of this Sone @@ -392,32 +343,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { List getPosts(); /** - * Sets all posts of this Sone at once. - * - * @param posts - * The new (and only) posts of this Sone - * @return This Sone (for method chaining) - */ - Sone setPosts(Collection posts); - - /** - * Adds the given post to this Sone. The post will not be added if its {@link - * Post#getSone() Sone} is not this Sone. - * - * @param post - * The post to add - */ - void addPost(Post post); - - /** - * Removes the given post from this Sone. - * - * @param post - * The post to remove - */ - void removePost(Post post); - - /** * Returns all replies this Sone made. * * @return All replies this Sone made