Add and implement Identified interface.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Album.java
index aa14ede..0c8780c 100644 (file)
@@ -44,7 +44,7 @@ import com.google.common.hash.Hashing;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class Album implements Fingerprintable {
+public class Album implements Identified, Fingerprintable {
 
        /** Compares two {@link Album}s by {@link #getTitle()}. */
        public static final Comparator<Album> TITLE_COMPARATOR = new Comparator<Album>() {
@@ -86,11 +86,19 @@ public class Album implements Fingerprintable {
 
                @Override
                public boolean apply(Album album) {
+                       /* so, we flatten all albums below the given one and check whether at least one album… */
                        return FluentIterable.from(asList(album)).transformAndConcat(FLATTENER).anyMatch(new Predicate<Album>() {
 
                                @Override
                                public boolean apply(Album album) {
-                                       return !album.getImages().isEmpty();
+                                       /* …contains any inserted images. */
+                                       return !album.getImages().isEmpty() && FluentIterable.from(album.getImages()).allMatch(new Predicate<Image>() {
+
+                                               @Override
+                                               public boolean apply(Image input) {
+                                                       return input.isInserted();
+                                               }
+                                       });
                                }
                        });
                }