X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FAlbum.java;h=e3b33de823c96b6505aeea028a4e123468c94db9;hb=77e714830763134b227baafd0874f1153255ebe7;hp=5d4eeb7f0c0a281201260f862a87a36e293ea801;hpb=c3acd80a6f7f0b4c7f8758056baf68f8bc84c30a;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 5d4eeb7..e3b33de 100644 --- a/src/main/java/net/pterodactylus/sone/data/Album.java +++ b/src/main/java/net/pterodactylus/sone/data/Album.java @@ -103,7 +103,7 @@ public class Album implements Fingerprintable { * @return This album */ public Album setSone(Sone sone) { - Validation.begin().isNotNull("New Album Owner", sone).check(); + Validation.begin().isNotNull("New Album Owner", sone).isEither("Old Album Owner", this.sone, null, sone).check(); this.sone = sone; return this; } @@ -124,9 +124,11 @@ public class Album implements Fingerprintable { * The album to add */ public void addAlbum(Album album) { - Validation.begin().isNotNull("Album", album).check().isEqual("Album Owner", album.sone, sone).isNull("Album Parent", album.parent).check(); - albums.add(album); + Validation.begin().isNotNull("Album", album).check().isEqual("Album Owner", album.sone, sone).isEither("Old Album Parent", this.parent, null, album.parent).check(); album.setParent(this); + if (!albums.contains(album)) { + albums.add(album); + } } /** @@ -226,7 +228,6 @@ public class Album implements Fingerprintable { * @return This album */ protected Album removeParent() { - Validation.begin().isNotNull("Album Parent", parent).check(); this.parent = null; return this; }