Add filter for replies with posts.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 24 Jan 2013 06:43:14 +0000 (07:43 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 24 Jan 2013 06:43:14 +0000 (07:43 +0100)
src/main/java/net/pterodactylus/sone/data/PostReply.java
src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java

index 36921dd..1dc5f44 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,6 +29,18 @@ package net.pterodactylus.sone.data;
 public interface PostReply extends Reply<PostReply> {
 
        /**
+        * 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.getPost().isPresent();
+               }
+       };
+
+       /**
         * Returns the ID of the post this reply refers to.
         *
         * @return The ID of the post this reply refers to
index e69aa12..6caa2fd 100644 (file)
@@ -122,13 +122,7 @@ public class GetStatusAjaxPage extends JsonPage {
                        });
                }
                /* remove replies to unknown posts. */
-               newReplies = Collections2.filter(newReplies, new Predicate<PostReply>() {
-
-                       @Override
-                       public boolean apply(PostReply reply) {
-                               return (reply.getPost() != null) && (reply.getPost().getSone() != null);
-                       }
-               });
+               newReplies = Collections2.filter(newReplies, PostReply.HAS_POST_FILTER);
                JsonArray jsonReplies = new JsonArray();
                for (PostReply reply : newReplies) {
                        JsonObject jsonReply = new JsonObject();