X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FMemoryDatabase.java;h=cd3be84c02484e99b5da22744e3c6100bc3fc1df;hb=b1c20256cc7b28a80eafb8edfa1e000dbc61b4e1;hp=67ea6710798633be7af108f0ddda902216822894;hpb=6c45481d2b225a7614bf7624cdb3e9fbddae1a94;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 67ea671..cd3be84 100644
--- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java
+++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java
@@ -58,12 +58,14 @@ import com.google.common.collect.SortedSetMultimap;
import com.google.common.collect.TreeMultimap;
import com.google.common.util.concurrent.AbstractService;
import com.google.inject.Inject;
+import com.google.inject.Singleton;
/**
* Memory-based {@link PostDatabase} implementation.
*
* @author David âBombeâ Roden
*/
+@Singleton
public class MemoryDatabase extends AbstractService implements Database {
/** The lock. */
@@ -112,8 +114,10 @@ public class MemoryDatabase extends AbstractService implements Database {
private final Set knownPostReplies = new HashSet();
private final Map allAlbums = new HashMap();
+ private final Multimap soneAlbums = HashMultimap.create();
private final Map allImages = new HashMap();
+ private final Multimap soneImages = HashMultimap.create();
/**
* Creates a new memory database.
@@ -445,6 +449,7 @@ public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allAlbums.put(album.getId(), album);
+ soneAlbums.put(album.getSone().getId(), album);
} finally {
lock.writeLock().unlock();
}
@@ -455,6 +460,7 @@ public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allAlbums.remove(album.getId());
+ soneAlbums.remove(album.getSone().getId(), album);
} finally {
lock.writeLock().unlock();
}
@@ -492,6 +498,7 @@ public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allImages.put(image.getId(), image);
+ soneImages.put(image.getSone().getId(), image);
} finally {
lock.writeLock().unlock();
}
@@ -502,6 +509,7 @@ public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allImages.remove(image.getId());
+ soneImages.remove(image.getSone().getId(), image);
} finally {
lock.writeLock().unlock();
}