Expose following times from FriendProvider
[Sone.git] / src / main / java / net / pterodactylus / sone / database / memory / MemoryDatabase.java
index 248592c..571f9a3 100644 (file)
@@ -55,11 +55,9 @@ 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;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Multimap;
@@ -81,9 +79,6 @@ public class MemoryDatabase extends AbstractService implements Database {
        /** The lock. */
        private final ReadWriteLock lock = new ReentrantReadWriteLock();
 
-       /** The Sone provider. */
-       private final SoneProvider soneProvider;
-
        /** The configuration. */
        private final Configuration configuration;
        private final ConfigurationLoader configurationLoader;
@@ -126,14 +121,11 @@ public class MemoryDatabase extends AbstractService implements Database {
        /**
         * Creates a new memory database.
         *
-        * @param soneProvider
-        *              The Sone provider
         * @param configuration
         *              The configuration for loading and saving elements
         */
        @Inject
-       public MemoryDatabase(SoneProvider soneProvider, Configuration configuration) {
-               this.soneProvider = soneProvider;
+       public MemoryDatabase(Configuration configuration) {
                this.configuration = configuration;
                this.configurationLoader = new ConfigurationLoader(configuration);
                memoryBookmarkDatabase =
@@ -328,16 +320,22 @@ public class MemoryDatabase extends AbstractService implements Database {
                memoryFriendDatabase.removeFriend(localSone.getId(), friendSoneId);
        }
 
+       @Nullable
+       @Override
+       public Long getFollowingTime(@Nonnull String friendSoneId) {
+               return memoryFriendDatabase.getFollowingTime(friendSoneId);
+       }
+
        //
        // POSTPROVIDER METHODS
        //
 
-       /** {@inheritDocs} */
+       @Nullable
        @Override
-       public Optional<Post> getPost(String postId) {
+       public Post getPost(@Nonnull String postId) {
                lock.readLock().lock();
                try {
-                       return fromNullable(allPosts.get(postId));
+                       return allPosts.get(postId);
                } finally {
                        lock.readLock().unlock();
                }
@@ -372,7 +370,7 @@ public class MemoryDatabase extends AbstractService implements Database {
        /** {@inheritDocs} */
        @Override
        public PostBuilder newPostBuilder() {
-               return new MemoryPostBuilder(this, soneProvider);
+               return new MemoryPostBuilder(this, this);
        }
 
        //
@@ -445,7 +443,7 @@ public class MemoryDatabase extends AbstractService implements Database {
        /** {@inheritDocs} */
        @Override
        public PostReplyBuilder newPostReplyBuilder() {
-               return new MemoryPostReplyBuilder(this, soneProvider);
+               return new MemoryPostReplyBuilder(this, this);
        }
 
        //
@@ -478,11 +476,12 @@ public class MemoryDatabase extends AbstractService implements Database {
        // ALBUMPROVDER METHODS
        //
 
+       @Nullable
        @Override
-       public Optional<Album> getAlbum(String albumId) {
+       public Album getAlbum(@Nonnull String albumId) {
                lock.readLock().lock();
                try {
-                       return fromNullable(allAlbums.get(albumId));
+                       return allAlbums.get(albumId);
                } finally {
                        lock.readLock().unlock();
                }
@@ -527,11 +526,12 @@ public class MemoryDatabase extends AbstractService implements Database {
        // IMAGEPROVIDER METHODS
        //
 
+       @Nullable
        @Override
-       public Optional<Image> getImage(String imageId) {
+       public Image getImage(@Nonnull String imageId) {
                lock.readLock().lock();
                try {
-                       return fromNullable(allImages.get(imageId));
+                       return allImages.get(imageId);
                } finally {
                        lock.readLock().unlock();
                }