Remove Identified interface
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Sone.java
index e64a388..441112a 100644 (file)
@@ -35,6 +35,7 @@ import net.pterodactylus.sone.freenet.wot.Identity;
 import net.pterodactylus.sone.freenet.wot.OwnIdentity;
 import net.pterodactylus.sone.template.SoneAccessor;
 
+import com.google.common.base.Optional;
 import freenet.keys.FreenetURI;
 
 import com.google.common.base.Function;
@@ -47,7 +48,7 @@ import com.google.common.primitives.Ints;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public interface Sone extends Identified, Fingerprintable, Comparable<Sone> {
+public interface Sone extends Fingerprintable, Comparable<Sone> {
 
        /**
         * Enumeration for the possible states of a {@link Sone}.
@@ -188,6 +189,15 @@ public interface Sone extends Identified, Fingerprintable, Comparable<Sone> {
                }
        };
 
+       Function<Sone, Collection<Post>> toAllPosts = new Function<Sone, Collection<Post>>() {
+               @Override
+               public Collection<Post> apply(@Nullable Sone sone) {
+                       return (sone != null) ? sone.getPosts() : Collections.<Post>emptyList();
+               }
+       };
+
+       String getId();
+       
        /**
         * Returns the identity of this Sone.
         *
@@ -502,6 +512,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable<Sone> {
         * @return The root album of this Sone
         */
        Album getRootAlbum();
+       Optional<Image> getImageByInternalId(final String internalId);
 
        /**
         * Returns Sone-specific options.