import net.pterodactylus.sone.database.ImageBuilder;
import com.google.common.base.Function;
+import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
List<Album> getAlbums();
/**
- * Moves the given album up in this album’s albums. If the album is already the
- * first album, nothing happens.
- *
- * @param album
- * The album to move up
- * @return The album that the given album swapped the place with, or
- * <code>null</code> if the album did not change its place
- */
- Album moveAlbumUp(Album album);
-
- /**
- * Moves the given album down in this album’s albums. If the album is already
- * the last album, nothing happens.
- *
- * @param album
- * The album to move down
- * @return The album that the given album swapped the place with, or
- * <code>null</code> if the album did not change its place
- */
- Album moveAlbumDown(Album album);
-
- /**
* Returns the images in this album.
*
* @return The images in this album
*/
List<Image> getImages();
- /**
- * Moves the given image up in this album’s images. If the image is already the
- * first image, nothing happens.
- *
- * @param image
- * The image to move up
- * @return The image that the given image swapped the place with, or
- * <code>null</code> if the image did not change its place
- */
- Image moveImageUp(Image image);
-
- /**
- * Moves the given image down in this album’s images. If the image is already
- * the last image, nothing happens.
- *
- * @param image
- * The image to move down
- * @return The image that the given image swapped the place with, or
- * <code>null</code> if the image did not change its place
- */
- 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();
+ Optional<Image> getAlbumImage();
/**
* Returns whether this album contains any other albums or images.
*/
Modifier modify() throws IllegalStateException;
+ void moveUp();
+
+ void moveDown();
+
void remove() throws IllegalStateException;
/**