Use bookmark database in core.
[Sone.git] / src / main / java / net / pterodactylus / sone / database / memory / MemoryDatabase.java
index 00bb5c9..5a8fb00 100644 (file)
@@ -51,6 +51,7 @@ 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.SoneBuilder;
 import net.pterodactylus.sone.database.SoneProvider;
 import net.pterodactylus.util.config.Configuration;
 import net.pterodactylus.util.config.ConfigurationException;
@@ -114,6 +115,9 @@ public class MemoryDatabase extends AbstractService implements Database {
        private final Map<String, Image> allImages = new HashMap<String, Image>();
        private final Multimap<String, Image> soneImages = HashMultimap.create();
 
+       private final MemoryBookmarkDatabase memoryBookmarkDatabase =
+                       new MemoryBookmarkDatabase(this);
+
        /**
         * Creates a new memory database.
         *
@@ -168,6 +172,11 @@ public class MemoryDatabase extends AbstractService implements Database {
        }
 
        @Override
+       public SoneBuilder newSoneBuilder() {
+               return new MemorySoneBuilder();
+       }
+
+       @Override
        public void storeSone(Sone sone) {
                lock.writeLock().lock();
                try {
@@ -227,7 +236,7 @@ public class MemoryDatabase extends AbstractService implements Database {
        public Collection<Sone> getSones() {
                lock.readLock().lock();
                try {
-                       return unmodifiableCollection(allSones.values());
+                       return new HashSet<Sone>(allSones.values());
                } finally {
                        lock.readLock().unlock();
                }
@@ -584,6 +593,31 @@ public class MemoryDatabase extends AbstractService implements Database {
                }
        }
 
+       @Override
+       public void bookmarkPost(String postId) {
+               memoryBookmarkDatabase.bookmarkPost(postId);
+       }
+
+       @Override
+       public void bookmarkPost(Post post) {
+               memoryBookmarkDatabase.bookmarkPost(post);
+       }
+
+       @Override
+       public void unbookmarkPost(Post post) {
+               memoryBookmarkDatabase.unbookmarkPost(post);
+       }
+
+       @Override
+       public boolean isPostBookmarked(Post post) {
+               return memoryBookmarkDatabase.isPostBookmarked(post);
+       }
+
+       @Override
+       public Set<Post> getBookmarkedPosts() {
+               return memoryBookmarkDatabase.getBookmarkedPosts();
+       }
+
        //
        // PACKAGE-PRIVATE METHODS
        //