+ if (image.getId().equals(albumImage)) {
+ if (images.isEmpty()) {
+ albumImage = null;
+ } else {
+ albumImage = images.values().iterator().next().getId();
+ }
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Image getAlbumImage() {
+ if (albumImage == null) {
+ return null;
+ }
+ return images.get(albumImage);
+ }
+
+ /**
+ * Sets the ID of the album image.
+ *
+ * @param id
+ * The ID of the album image
+ * @return This album
+ */
+ public Album setAlbumImage(String id) {
+ this.albumImage = id;
+ return this;
+ }
+
+ /**
+ * Returns whether this album contains any other albums or images.
+ *
+ * @return {@code true} if this album is empty, {@code false} otherwise
+ */
+ public boolean isEmpty() {
+ return albums.isEmpty() && images.isEmpty();