Change album ID to be unique, add internal ID
[Sone.git] / src / main / java / net / pterodactylus / sone / data / impl / AlbumImpl.java
index 058a736..6a45187 100644 (file)
@@ -21,7 +21,6 @@ import static com.google.common.base.Optional.absent;
 import static com.google.common.base.Optional.fromNullable;
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -30,6 +29,7 @@ import java.util.Map;
 import java.util.UUID;
 
 import net.pterodactylus.sone.data.Album;
+import net.pterodactylus.sone.data.IdBuilder;
 import net.pterodactylus.sone.data.Image;
 import net.pterodactylus.sone.data.Sone;
 
@@ -47,6 +47,8 @@ import com.google.common.hash.Hashing;
  */
 public class AlbumImpl implements Album {
 
+       private final IdBuilder idBuilder = new IdBuilder();
+
        /** The ID of this album. */
        private final String id;
 
@@ -96,6 +98,11 @@ public class AlbumImpl implements Album {
 
        @Override
        public String getId() {
+               return idBuilder.buildId(sone.getId(), id);
+       }
+
+       @Override
+       public String getInternalId() {
                return id;
        }
 
@@ -135,7 +142,7 @@ public class AlbumImpl implements Album {
                checkArgument(equals(album.getParent()), "album must belong to this album");
                int oldIndex = albums.indexOf(album);
                if (oldIndex <= 0) {
-                       return null;
+                       return album;
                }
                albums.remove(oldIndex);
                albums.add(oldIndex - 1, album);
@@ -149,7 +156,7 @@ public class AlbumImpl implements Album {
                checkArgument(equals(album.getParent()), "album must belong to this album");
                int oldIndex = albums.indexOf(album);
                if ((oldIndex < 0) || (oldIndex >= (albums.size() - 1))) {
-                       return null;
+                       return album;
                }
                albums.remove(oldIndex);
                albums.add(oldIndex + 1, album);
@@ -210,7 +217,7 @@ public class AlbumImpl implements Album {
                checkArgument(image.getAlbum().equals(this), "image must belong to this album");
                int oldIndex = imageIds.indexOf(image.getId());
                if (oldIndex <= 0) {
-                       return null;
+                       return image;
                }
                imageIds.remove(image.getId());
                imageIds.add(oldIndex - 1, image.getId());
@@ -225,7 +232,7 @@ public class AlbumImpl implements Album {
                checkArgument(image.getAlbum().equals(this), "image must belong to this album");
                int oldIndex = imageIds.indexOf(image.getId());
                if ((oldIndex == -1) || (oldIndex >= (imageIds.size() - 1))) {
-                       return null;
+                       return image;
                }
                imageIds.remove(image.getId());
                imageIds.add(oldIndex + 1, image.getId());