+ List<Album> getAlbums();
+
+ /**
+ * Adds an album to this album.
+ *
+ * @param album
+ * The album to add
+ */
+ void addAlbum(Album album);
+
+ /**
+ * Removes an album from this album.
+ *
+ * @param album
+ * The album to remove
+ */
+ void removeAlbum(Album album);
+
+ /**
+ * 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);