Make image moving methods publicly available in the database.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 15 Oct 2013 04:19:12 +0000 (06:19 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 28 Feb 2014 21:25:26 +0000 (22:25 +0100)
src/main/java/net/pterodactylus/sone/database/ImageDatabase.java
src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java

index e1aa28c..ad1518b 100644 (file)
@@ -17,6 +17,8 @@
 
 package net.pterodactylus.sone.database;
 
+import net.pterodactylus.sone.data.Image;
+
 /**
  * Combines an {@link ImageProvider}, an {@link ImageBuilderFactory}, and an
  * {@link ImageStore} into an image database.
@@ -25,6 +27,7 @@ package net.pterodactylus.sone.database;
  */
 public interface ImageDatabase extends ImageProvider, ImageStore {
 
-       /* nothing here. */
+       void moveUp(Image image);
+       void moveDown(Image image);
 
 }
index 538d97f..9114182 100644 (file)
@@ -542,6 +542,38 @@ public class MemoryDatabase extends AbstractService implements Database {
                }
        }
 
+       @Override
+       public void moveUp(Image image) {
+               lock.writeLock().lock();
+               try {
+                       List<String> images = albumImages.get(image.getAlbum().getId());
+                       int currentIndex = images.indexOf(image.getId());
+                       if (currentIndex == 0) {
+                               return;
+                       }
+                       images.remove(image.getId());
+                       images.add(currentIndex - 1, image.getId());
+               } finally {
+                       lock.writeLock().unlock();
+               }
+       }
+
+       @Override
+       public void moveDown(Image image) {
+               lock.writeLock().lock();
+               try {
+                       List<String> images = albumChildren.get(image.getAlbum().getId());
+                       int currentIndex = images.indexOf(image.getId());
+                       if (currentIndex == (images.size() - 1)) {
+                               return;
+                       }
+                       images.remove(image.getId());
+                       images.add(currentIndex + 1, image.getId());
+               } finally {
+                       lock.writeLock().unlock();
+               }
+       }
+
        //
        // IMAGESTORE METHODS
        //
@@ -677,36 +709,6 @@ public class MemoryDatabase extends AbstractService implements Database {
                }
        }
 
-       void moveUp(Image image) {
-               lock.writeLock().lock();
-               try {
-                       List<String> images = albumImages.get(image.getAlbum().getId());
-                       int currentIndex = images.indexOf(image.getId());
-                       if (currentIndex == 0) {
-                               return;
-                       }
-                       images.remove(image.getId());
-                       images.add(currentIndex - 1, image.getId());
-               } finally {
-                       lock.writeLock().unlock();
-               }
-       }
-
-       void moveDown(Image image) {
-               lock.writeLock().lock();
-               try {
-                       List<String> images = albumChildren.get(image.getAlbum().getId());
-                       int currentIndex = images.indexOf(image.getId());
-                       if (currentIndex == (images.size() - 1)) {
-                               return;
-                       }
-                       images.remove(image.getId());
-                       images.add(currentIndex + 1, image.getId());
-               } finally {
-                       lock.writeLock().unlock();
-               }
-       }
-
        //
        // PRIVATE METHODS
        //