Add method to tell if a post has already been loaded.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Post.java
index 5269fe4..09198fd 100644 (file)
@@ -28,7 +28,7 @@ import com.google.common.base.Predicate;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public interface Post {
+public interface Post extends Identified {
 
        /** Comparator for posts, sorts descending by time. */
        public static final Comparator<Post> TIME_COMPARATOR = new Comparator<Post>() {
@@ -45,7 +45,7 @@ public interface Post {
 
                @Override
                public boolean apply(Post post) {
-                       return post.getTime() <= System.currentTimeMillis();
+                       return (post != null) && (post.getTime() <= System.currentTimeMillis());
                }
 
        };
@@ -62,19 +62,19 @@ public interface Post {
        public String getId();
 
        /**
-        * Returns the Sone this post belongs to.
+        * Returns whether this post has already been loaded.
         *
-        * @return The Sone of this post
+        * @return {@code true} if this post has already been loaded, {@code
+        * false} otherwise
         */
-       public Sone getSone();
+       boolean isLoaded();
 
        /**
-        * Returns whether this post has a recipient.
+        * Returns the Sone this post belongs to.
         *
-        * @return {@code true} if this post has a recipient, {@code false}
-        *         otherwise
+        * @return The Sone of this post
         */
-       public boolean hasRecipient();
+       public Sone getSone();
 
        /**
         * Returns the ID of the recipient {@link Sone}, or
@@ -85,10 +85,7 @@ public interface Post {
        public Optional<String> getRecipientId();
 
        /**
-        * Returns the recipient of this post, if any. As this method can return
-        * {@link Optional#absent()} if the post has a recipient which has not yet
-        * been loaded, it is recommended to use {@link #hasRecipient()} to check
-        * for the presence of a recipient.
+        * Returns the recipient of this post, if any.
         *
         * @return The recipient of this post, or {@link Optional#absent()} if there
         *         is no recipient