projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move required parameters for image into the image builder.
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
data
/
Album.java
diff --git
a/src/main/java/net/pterodactylus/sone/data/Album.java
b/src/main/java/net/pterodactylus/sone/data/Album.java
index
1e79f89
..
8864f13
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/data/Album.java
+++ b/
src/main/java/net/pterodactylus/sone/data/Album.java
@@
-26,6
+26,8
@@
import java.util.Comparator;
import java.util.List;
import javax.annotation.Nonnull;
import java.util.List;
import javax.annotation.Nonnull;
+import net.pterodactylus.sone.database.ImageBuilder;
+
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
@@
-178,14
+180,6
@@
public interface Album extends Identified, Fingerprintable {
List<Image> getImages();
/**
List<Image> getImages();
/**
- * Adds the given image to this album.
- *
- * @param image
- * The image to add
- */
- void addImage(Image image);
-
- /**
* Removes the given image from this album.
*
* @param image
* Removes the given image from this album.
*
* @param image
@@
-224,15
+218,6
@@
public interface Album extends Identified, Fingerprintable {
Image getAlbumImage();
/**
Image getAlbumImage();
/**
- * Sets the ID of the album image.
- *
- * @param id
- * The ID of the album image
- * @return This album
- */
- Album setAlbumImage(String id);
-
- /**
* Returns whether this album contains any other albums or images.
*
* @return {@code true} if this album is empty, {@code false} otherwise
* Returns whether this album contains any other albums or images.
*
* @return {@code true} if this album is empty, {@code false} otherwise
@@
-279,28
+264,40
@@
public interface Album extends Identified, Fingerprintable {
String getTitle();
/**
String getTitle();
/**
- *
Sets the title
of this album.
+ *
Returns the description
of this album.
*
*
- * @param title
- * The title of this album
- * @return This album
+ * @return The description of this album
*/
*/
- Album setTitle(String title);
+ String getDescription();
+
+ ImageBuilder newImageBuilder() throws IllegalStateException;
/**
/**
- * Returns
the description of
this album.
+ * Returns
a modifier for
this album.
*
*
- * @return The description of this album
+ * @return A modifier for this album
+ * @throws IllegalStateException
+ * if this album can not be modified
*/
*/
-
String getDescription()
;
+
Modifier modify() throws IllegalStateException
;
/**
/**
- * Sets the description of this album.
+ * Allows modifying an album. Modifications are only performed once {@link
+ * #update()} has succesfully returned a new album with the modifications
+ * made.
*
*
- * @param description
- * The description of this album
- * @return This album
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
*/
- Album setDescription(String description);
+ interface Modifier {
+
+ Modifier setTitle(String title);
+
+ Modifier setDescription(String description);
+
+ Modifier setAlbumImage(String imageId);
+
+ Album update() throws IllegalStateException;
+
+ }
}
}