package net.pterodactylus.sone.database.memory;
-import static com.google.common.base.Preconditions.*;
+import static com.google.common.base.Optional.fromNullable;
+import static com.google.common.base.Preconditions.checkNotNull;
import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+import net.pterodactylus.sone.data.Album;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.PostReply;
import net.pterodactylus.sone.data.Reply;
/** Whether post replies are known. */
private final Set<String> knownPostReplies = new HashSet<String>();
+ private final Map<String, Album> allAlbums = new HashMap<String, Album>();
+
/**
* Creates a new memory database.
*
public Optional<Post> getPost(String postId) {
lock.readLock().lock();
try {
- return Optional.fromNullable(allPosts.get(postId));
+ return fromNullable(allPosts.get(postId));
} finally {
lock.readLock().unlock();
}
public Optional<PostReply> getPostReply(String id) {
lock.readLock().lock();
try {
- return Optional.fromNullable(allPostReplies.get(id));
+ return fromNullable(allPostReplies.get(id));
} finally {
lock.readLock().unlock();
}
}
//
+ // ALBUMPROVDER METHODS
+ //
+
+ @Override
+ public Optional<Album> getAlbum(String albumId) {
+ lock.readLock().lock();
+ try {
+ return fromNullable(allAlbums.get(albumId));
+ } finally {
+ lock.readLock().unlock();
+ }
+ }
+
+ //
+ // ALBUMSTORE METHODS
+ //
+
+ @Override
+ public void storeAlbum(Album album) {
+ lock.writeLock().lock();
+ try {
+ allAlbums.put(album.getId(), album);
+ } finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ @Override
+ public void removeAlbum(Album album) {
+ lock.writeLock().lock();
+ try {
+ allAlbums.remove(album.getId());
+ } finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ //
// PACKAGE-PRIVATE METHODS
//