Merge branch 'release/0.9-rc1'
[Sone.git] / src / main / java / net / pterodactylus / sone / data / PostReply.java
index 4452e2e..d010261 100644 (file)
@@ -17,6 +17,9 @@
 
 package net.pterodactylus.sone.data;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+
 /**
  * A reply is like a {@link Post} but can never be posted on its own, it always
  * refers to another {@link Post}.
@@ -26,19 +29,29 @@ package net.pterodactylus.sone.data;
 public interface PostReply extends Reply<PostReply> {
 
        /**
-        * Returns the post this reply refers to.
+        * Filter that selects {@link PostReply}s that have a
+        * {@link Optional#isPresent() present} {@link #getPost() post}.
+        */
+       public static final Predicate<PostReply> HAS_POST_FILTER = new Predicate<PostReply>() {
+
+               @Override
+               public boolean apply(PostReply postReply) {
+                       return (postReply != null) && postReply.getPost().isPresent();
+               }
+       };
+
+       /**
+        * Returns the ID of the post this reply refers to.
         *
-        * @return The post this reply refers to
+        * @return The ID of the post this reply refers to
         */
-       public Post getPost();
+       public String getPostId();
 
        /**
-        * Sets the post this reply refers to.
+        * Returns the post this reply refers to.
         *
-        * @param postId
-        *            The ID of the post to reply to
-        * @return This reply
+        * @return The post this reply refers to
         */
-       public PostReply setPost(String postId);
+       public Optional<Post> getPost();
 
 }