X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=777660f937febe485830561ebeece73f5acb9c5b;hb=885f3980c49778280a748c630788212a68ac4ed6;hp=d7a7dee7b2d342c943983f96e295672227e91303;hpb=f4f5fb752ff9aff0235a907e170c6961576562f6;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 d7a7dee..777660f 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -1,5 +1,5 @@ /* - * Sone - Sone.java - Copyright © 2010–2013 David Roden + * Sone - Sone.java - Copyright © 2010–2016 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,17 +23,21 @@ 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 net.pterodactylus.sone.core.Options; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + 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.primitives.Ints; @@ -65,30 +69,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { downloading, } - /** - * The possible values for the “show custom avatars” option. - * - * @author David ‘Bombe’ Roden - */ - public static enum ShowCustomAvatars { - - /** Never show custom avatars. */ - NEVER, - - /** Only show custom avatars of followed Sones. */ - FOLLOWED, - - /** Only show custom avatars of Sones you manually trust. */ - MANUALLY_TRUSTED, - - /** Only show custom avatars of automatically trusted Sones. */ - TRUSTED, - - /** Always show custom avatars. */ - ALWAYS, - - } - /** comparator that sorts Sones by their nice name. */ public static final Comparator NICE_NAME_COMPARATOR = new Comparator() { @@ -144,7 +124,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable { @Override public boolean apply(Sone sone) { - return (sone == null) ? false : sone.getTime() != 0; + return (sone != null) && (sone.getTime() != 0); } }; @@ -153,7 +133,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) && (sone.getIdentity() instanceof OwnIdentity); } }; @@ -163,7 +143,24 @@ public interface Sone extends Identified, Fingerprintable, Comparable { @Override public boolean apply(Sone sone) { - return (sone == null) ? false : !sone.getRootAlbum().getAlbums().isEmpty(); + return (sone != null) && !sone.getRootAlbum().getAlbums().isEmpty(); + } + }; + + 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(); } }; @@ -175,18 +172,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 @@ -208,15 +193,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 @@ -224,15 +200,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 @@ -339,7 +306,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. @@ -352,24 +319,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 @@ -535,7 +484,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable { * * @return The options of this Sone */ - Options getOptions(); + SoneOptions getOptions(); /** * Sets the options of this Sone. @@ -544,6 +493,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable { * The options of this Sone */ /* TODO - remove this method again, maybe add an option provider */ - void setOptions(Options options); + void setOptions(SoneOptions options); }