Replace reply-specific interfaces with Kotlin versions
[Sone.git] / src / main / java / net / pterodactylus / sone / database / PostProvider.java
index 865376b..bea59b9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - PostProvider.java - Copyright © 2011–2013 David Roden
+ * Sone - PostProvider.java - Copyright © 2011–2016 David Roden
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,12 +20,17 @@ package net.pterodactylus.sone.database;
 import java.util.Collection;
 
 import net.pterodactylus.sone.data.Post;
+import net.pterodactylus.sone.database.memory.MemoryDatabase;
+
+import com.google.common.base.Optional;
+import com.google.inject.ImplementedBy;
 
 /**
  * Interface for objects that can provide {@link Post}s by their ID.
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
+@ImplementedBy(MemoryDatabase.class)
 public interface PostProvider {
 
        /**
@@ -35,7 +40,16 @@ public interface PostProvider {
         *            The ID of the post to return
         * @return The post with the given ID, or {@code null}
         */
-       public Post getPost(String postId);
+       public Optional<Post> getPost(String postId);
+
+       /**
+        * Returns all posts from the given Sone.
+        *
+        * @param soneId
+        *            The ID of the Sone
+        * @return All posts from the given Sone
+        */
+       public Collection<Post> getPosts(String soneId);
 
        /**
         * Returns all posts that have the given Sone as recipient.