projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Store album relationships.
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
database
/
memory
/
MemoryDatabase.java
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
(file)
--- 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.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.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;
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 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;
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<String> knownPostReplies = new HashSet<String>();
private final Map<String, Album> allAlbums = new HashMap<String, Album>();
private final Set<String> knownPostReplies = new HashSet<String>();
private final Map<String, Album> allAlbums = new HashMap<String, Album>();
+ private final ListMultimap<String, String> albumChildren = ArrayListMultimap.create();
+ private final ListMultimap<String, String> albumImages = ArrayListMultimap.create();
private final Map<String, Image> allImages = new HashMap<String, Image>();
private final Map<String, Image> allImages = new HashMap<String, Image>();
@@
-437,15
+437,6
@@
public class MemoryDatabase extends AbstractService implements Database {
}
//
}
//
- // ALBUMBUILDERFACTORY METHODS
- //
-
- @Override
- public AlbumBuilder newAlbumBuilder() {
- return new AlbumBuilderImpl();
- }
-
- //
// ALBUMSTORE METHODS
//
// ALBUMSTORE METHODS
//
@@
-454,6
+445,7
@@
public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allAlbums.put(album.getId(), album);
lock.writeLock().lock();
try {
allAlbums.put(album.getId(), album);
+ albumChildren.put(album.getParent().getId(), album.getId());
} finally {
lock.writeLock().unlock();
}
} finally {
lock.writeLock().unlock();
}
@@
-464,6
+456,7
@@
public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allAlbums.remove(album.getId());
lock.writeLock().lock();
try {
allAlbums.remove(album.getId());
+ albumChildren.remove(album.getParent().getId(), album.getId());
} finally {
lock.writeLock().unlock();
}
} 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
//
// IMAGESTORE METHODS
//
@@
-501,6
+485,7
@@
public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allImages.put(image.getId(), image);
lock.writeLock().lock();
try {
allImages.put(image.getId(), image);
+ albumImages.put(image.getAlbum().getId(), image.getId());
} finally {
lock.writeLock().unlock();
}
} finally {
lock.writeLock().unlock();
}
@@
-511,6
+496,7
@@
public class MemoryDatabase extends AbstractService implements Database {
lock.writeLock().lock();
try {
allImages.remove(image.getId());
lock.writeLock().lock();
try {
allImages.remove(image.getId());
+ albumImages.remove(image.getAlbum().getId(), image.getId());
} finally {
lock.writeLock().unlock();
}
} finally {
lock.writeLock().unlock();
}