🔥 Replace NOT_EMPTY with Kotlin version
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Album.java
index c75088f..efaa470 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - Album.java - Copyright Â© 2011–2013 David Roden
+ * Sone - Album.java - Copyright Â© 2011–2020 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
@@ -22,7 +22,6 @@ import static java.util.Collections.emptyList;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 import javax.annotation.Nonnull;
 
@@ -33,20 +32,9 @@ import com.google.common.collect.ImmutableList;
 
 /**
  * Container for images that can also contain nested {@link Album}s.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David â€˜Bombe’ Roden</a>
  */
 public interface Album extends Identified, Fingerprintable {
 
-       /** Compares two {@link Album}s by {@link #getTitle()}. */
-       Comparator<Album> TITLE_COMPARATOR = new Comparator<Album>() {
-
-               @Override
-               public int compare(Album leftAlbum, Album rightAlbum) {
-                       return leftAlbum.getTitle().compareToIgnoreCase(rightAlbum.getTitle());
-               }
-       };
-
        /** Function that flattens the given album and all albums beneath it. */
        Function<Album, List<Album>> FLATTENER = new Function<Album, List<Album>>() {
 
@@ -56,7 +44,7 @@ public interface Album extends Identified, Fingerprintable {
                        if (album == null) {
                                return emptyList();
                        }
-                       List<Album> albums = new ArrayList<Album>();
+                       List<Album> albums = new ArrayList<>();
                        albums.add(album);
                        for (Album subAlbum : album.getAlbums()) {
                                albums.addAll(FluentIterable.from(ImmutableList.of(subAlbum)).transformAndConcat(FLATTENER).toList());
@@ -76,32 +64,6 @@ public interface Album extends Identified, Fingerprintable {
        };
 
        /**
-        * Filter that removes all albums that do not have any images in any album
-        * below it.
-        */
-       Predicate<Album> NOT_EMPTY = new Predicate<Album>() {
-
-               @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) {
-                                       /* â€¦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();
-                                               }
-                                       });
-                               }
-                       });
-               }
-       };
-
-       /**
         * Returns the ID of this album.
         *
         * @return The ID of this album
@@ -206,14 +168,6 @@ public interface Album extends Identified, Fingerprintable {
        Image moveImageDown(Image image);
 
        /**
-        * Returns the album image of this album, or {@code null} if no album image has
-        * been set.
-        *
-        * @return The image to show when this album is listed
-        */
-       Image getAlbumImage();
-
-       /**
         * Returns whether this album contains any other albums or images.
         *
         * @return {@code true} if this album is empty, {@code false} otherwise
@@ -279,8 +233,6 @@ public interface Album extends Identified, Fingerprintable {
         * Allows modifying an album. Modifications are only performed once {@link
         * #update()} has succesfully returned a new album with the modifications
         * made.
-        *
-        * @author <a href="mailto:bombe@pterodactylus.net">David â€˜Bombe’ Roden</a>
         */
        interface Modifier {
 
@@ -288,8 +240,6 @@ public interface Album extends Identified, Fingerprintable {
 
                Modifier setDescription(String description);
 
-               Modifier setAlbumImage(String imageId);
-
                Album update() throws IllegalStateException;
 
                class AlbumTitleMustNotBeEmpty extends IllegalStateException { }