/*
- * 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
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 {
/**
* 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.