Update year in copyright lines
[Sone.git] / src / main / java / net / pterodactylus / sone / data / PostReply.java
index 4c7c8d3..dc4a903 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - PostReply.java - Copyright © 2010–2013 David Roden
+ * Sone - PostReply.java - Copyright © 2010–2019 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
 
 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}.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 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 post
-        *            The post this reply refers to
-        * @return This reply
+        * @return The post this reply refers to
         */
-       public PostReply setPost(Post post);
+       public Optional<Post> getPost();
 
-}
\ No newline at end of file
+}