X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FAlbum.java;h=b15bc009ba61c386b04fcaf3f37caf8565a40b93;hb=8001b4629909156281c7fccfca79e4b6afbf36c0;hp=cc32f8833b193b20bacbed1ea334693ffae0b694;hpb=7ea94de6b3101ad2825b45c97d1d4893d65843f2;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/Album.java b/src/main/java/net/pterodactylus/sone/data/Album.java index cc32f88..b15bc00 100644 --- a/src/main/java/net/pterodactylus/sone/data/Album.java +++ b/src/main/java/net/pterodactylus/sone/data/Album.java @@ -152,6 +152,46 @@ public class Album implements Fingerprintable { } /** + * Moves the given album up in this album’s albums. If the album is already + * the first album, nothing happens. + * + * @param album + * The album to move up + * @return The album that the given album swapped the place with, or + * null if the album did not change its place + */ + public Album moveAlbumUp(Album album) { + Validation.begin().isNotNull("Album", album).check().isEqual("Album Owner", album.sone, sone).isEqual("Album Parent", album.parent, this).check(); + int oldIndex = albums.indexOf(album); + if (oldIndex <= 0) { + return null; + } + albums.remove(oldIndex); + albums.add(oldIndex - 1, album); + return albums.get(oldIndex); + } + + /** + * Moves the given album down in this album’s albums. If the album is + * already the last album, nothing happens. + * + * @param album + * The album to move down + * @return The album that the given album swapped the place with, or + * null if the album did not change its place + */ + public Album moveAlbumDown(Album album) { + Validation.begin().isNotNull("Album", album).check().isEqual("Album Owner", album.sone, sone).isEqual("Album Parent", album.parent, this).check(); + int oldIndex = albums.indexOf(album); + if ((oldIndex < 0) || (oldIndex >= (albums.size() - 1))) { + return null; + } + albums.remove(oldIndex); + albums.add(oldIndex + 1, album); + return albums.get(oldIndex); + } + + /** * Returns the images in this album. * * @return The images in this album @@ -229,8 +269,8 @@ public class Album implements Fingerprintable { } /** - * Move the given image down in this album’s images. If the image is already - * the last image, nothing happens. + * Moves the given image down in this album’s images. If the image is + * already the last image, nothing happens. * * @param image * The image to move down @@ -386,7 +426,7 @@ public class Album implements Fingerprintable { /* add images. */ fingerprint.append("Images("); - for (Image image : images.values()) { + for (Image image : getImages()) { if (image.isInserted()) { fingerprint.append(image.getFingerprint()); }