X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FDefaultImage.java;h=156eb813aa6ce3474338f8b2fec66085aec49823;hb=a77d4a36080bc90c8c09efb753eb9e46f4e677d9;hp=085091a7fae9d07d7a9bc26ebe351ce1ed535488;hpb=eae5ceb147d3b6aafcb6d423a593d89e7847c2e6;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/impl/DefaultImage.java b/src/main/java/net/pterodactylus/sone/data/impl/DefaultImage.java index 085091a..156eb81 100644 --- a/src/main/java/net/pterodactylus/sone/data/impl/DefaultImage.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/DefaultImage.java @@ -17,6 +17,8 @@ package net.pterodactylus.sone.data.impl; +import static com.google.common.collect.FluentIterable.from; + import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Sone; @@ -29,9 +31,9 @@ import net.pterodactylus.sone.data.Sone; public class DefaultImage extends AbstractImage { private final Sone sone; - private final Album album; + private final DefaultAlbum album; - public DefaultImage(String id, Sone sone, Album album, String key, long creationTime, int width, int height) { + public DefaultImage(String id, Sone sone, DefaultAlbum album, String key, long creationTime, int width, int height) { super(id, key, creationTime, width, height); this.sone = sone; this.album = album; @@ -47,4 +49,15 @@ public class DefaultImage extends AbstractImage { return album; } + @Override + public void remove() throws IllegalStateException { + synchronized (album) { + album.images.remove(getId()); + album.imageIds.remove(getId()); + if (getId().equals(album.albumImage)) { + album.albumImage = from(album.images.values()).transform(GET_ID).first().orNull(); + } + } + } + }