image.getAlbum().removeImage(image);
}
image.setAlbum(this);
+ if (images.isEmpty()) {
+ albumImage = image.getId();
+ }
if (!images.containsKey(image.getId())) {
images.put(image.getId(), image);
}
public void removeImage(Image image) {
Validation.begin().isNotNull("Image", image).check().isEqual("Image Owner", image.getSone(), sone).check();
images.remove(image);
+ if (image.getId().equals(albumImage)) {
+ if (images.isEmpty()) {
+ albumImage = null;
+ } else {
+ albumImage = images.values().iterator().next().getId();
+ }
+ }
}
/**
}
/**
+ * 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