import java.util.List;
import java.util.UUID;
+import net.pterodactylus.util.validation.Validation;
+
/**
* Container for images that can also contain nested {@link Album}s.
*
* The Sone this album belongs to
*/
public Album(String id, Sone sone) {
+ Validation.begin().isNotNull("Album ID", id).isNotNull("Album Owner", sone).check();
this.id = id;
this.sone = sone;
}
}
/**
+ * Adds an album to this album.
+ *
+ * @param album
+ * The album to add
+ */
+ public void addAlbum(Album album) {
+ Validation.begin().isNotNull("Album", album).check().isEqual("Album Owner", album.sone, sone).check();
+ albums.add(album);
+ }
+
+ /**
+ * Removes an album from this album.
+ *
+ * @param album
+ * The album to remove
+ */
+ public void removeAlbum(Album album) {
+ Validation.begin().isNotNull("Album", album).check().isEqual("Album Owner", album.sone, sone).check();
+ albums.remove(album);
+ }
+
+ /**
* Returns the images in this album.
*
* @return The images in this album
}
/**
+ * Adds the given image to this album.
+ *
+ * @param image
+ * The image to add
+ */
+ public void addImage(Image image) {
+ Validation.begin().isNotNull("Image", image).check().isEqual("Image Owner", image.getSone(), sone).check();
+ images.add(image);
+ }
+
+ /**
+ * Removes the given image from this album.
+ *
+ * @param image
+ * The image to remove
+ */
+ public void removeImage(Image image) {
+ Validation.begin().isNotNull("Image", image).check().isEqual("Image Owner", image.getSone(), sone).check();
+ images.remove(image);
+ }
+
+ /**
* Returns the name of this album.
*
* @return The name of this album
* @return This album
*/
public Album setName(String name) {
+ Validation.begin().isNotNull("Album Name", name).check();
this.name = name;
return this;
}
* @return This album
*/
public Album setDescription(String description) {
+ Validation.begin().isNotNull("Album Description", description).check();
this.description = description;
return this;
}