X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FMemoryDatabase.java;h=c778de2a1c7e3ec95a69dc79f811f4151df5757b;hb=1f15b9eae9ca9453452f16b1cc76e05b3bcfb696;hp=8b2595403ebf22d508d6cb453e22b6a428c2d479;hpb=9d32a0f70e14a764946ae29edcf07304f9e5f75e;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java index 8b25954..c778de2 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java @@ -40,12 +40,8 @@ import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; -import net.pterodactylus.sone.data.impl.AlbumBuilderImpl; -import net.pterodactylus.sone.data.impl.ImageBuilderImpl; -import net.pterodactylus.sone.database.AlbumBuilder; import net.pterodactylus.sone.database.Database; import net.pterodactylus.sone.database.DatabaseException; -import net.pterodactylus.sone.database.ImageBuilder; import net.pterodactylus.sone.database.PostBuilder; import net.pterodactylus.sone.database.PostDatabase; import net.pterodactylus.sone.database.PostReplyBuilder; @@ -54,6 +50,8 @@ import net.pterodactylus.util.config.Configuration; import net.pterodactylus.util.config.ConfigurationException; import com.google.common.base.Optional; +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ListMultimap; import com.google.common.collect.SortedSetMultimap; import com.google.common.collect.TreeMultimap; import com.google.common.util.concurrent.AbstractService; @@ -106,6 +104,8 @@ public class MemoryDatabase extends AbstractService implements Database { private final Set knownPostReplies = new HashSet(); private final Map allAlbums = new HashMap(); + private final ListMultimap albumChildren = ArrayListMultimap.create(); + private final ListMultimap albumImages = ArrayListMultimap.create(); private final Map allImages = new HashMap(); @@ -437,15 +437,6 @@ public class MemoryDatabase extends AbstractService implements Database { } // - // ALBUMBUILDERFACTORY METHODS - // - - @Override - public AlbumBuilder newAlbumBuilder() { - return new AlbumBuilderImpl(); - } - - // // ALBUMSTORE METHODS // @@ -454,6 +445,7 @@ public class MemoryDatabase extends AbstractService implements Database { lock.writeLock().lock(); try { allAlbums.put(album.getId(), album); + albumChildren.put(album.getParent().getId(), album.getId()); } finally { lock.writeLock().unlock(); } @@ -464,6 +456,7 @@ public class MemoryDatabase extends AbstractService implements Database { lock.writeLock().lock(); try { allAlbums.remove(album.getId()); + albumChildren.remove(album.getParent().getId(), album.getId()); } finally { lock.writeLock().unlock(); } @@ -484,15 +477,6 @@ public class MemoryDatabase extends AbstractService implements Database { } // - // IMAGEBUILDERFACTORY METHODS - // - - @Override - public ImageBuilder newImageBuilder() { - return new ImageBuilderImpl(); - } - - // // IMAGESTORE METHODS // @@ -501,6 +485,7 @@ public class MemoryDatabase extends AbstractService implements Database { lock.writeLock().lock(); try { allImages.put(image.getId(), image); + albumImages.put(image.getAlbum().getId(), image.getId()); } finally { lock.writeLock().unlock(); } @@ -511,6 +496,7 @@ public class MemoryDatabase extends AbstractService implements Database { lock.writeLock().lock(); try { allImages.remove(image.getId()); + albumImages.remove(image.getAlbum().getId(), image.getId()); } finally { lock.writeLock().unlock(); }