X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FAlbumImpl.java;h=5ee0c2368ee53de7d28b0d23c3d79b4e1cad2198;hb=fc2165a3e44887c18d6faca054cc4efa384ca797;hp=f489b0b09548adde4bc654d4a76806e6483b2e39;hpb=518efffdab386d47882aedee35031e66852c2772;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java b/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java index f489b0b..5ee0c23 100644 --- a/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java @@ -29,6 +29,9 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import net.pterodactylus.sone.data.impl.ImageBuilderImpl; +import net.pterodactylus.sone.database.ImageBuilder; + import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Predicates; @@ -172,24 +175,6 @@ public class AlbumImpl implements Album { } @Override - public void addImage(Image image) { - checkNotNull(image, "image must not be null"); - checkNotNull(image.getSone(), "image must have an owner"); - checkArgument(image.getSone().equals(sone), "image must belong to the same Sone as this album"); - if (image.getAlbum() != null) { - image.getAlbum().removeImage(image); - } - image.setAlbum(this); - if (imageIds.isEmpty() && (albumImage == null)) { - albumImage = image.getId(); - } - if (!imageIds.contains(image.getId())) { - imageIds.add(image.getId()); - images.put(image.getId(), image); - } - } - - @Override public void removeImage(Image image) { checkNotNull(image, "image must not be null"); checkNotNull(image.getSone(), "image must have an owner"); @@ -281,6 +266,22 @@ public class AlbumImpl implements Album { } @Override + public ImageBuilder newImageBuilder() throws IllegalStateException { + return new ImageBuilderImpl(this) { + @Override + public Image build() throws IllegalStateException { + Image image = super.build(); + if (images.isEmpty() && (albumImage == null)) { + albumImage = image.getId(); + } + images.put(image.getId(), image); + imageIds.add(image.getId()); + return image; + } + }; + } + + @Override public Modifier modify() throws IllegalStateException { // TODO: reenable check for local Sones return new Modifier() {