Add recipients to posts.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Post.java
index c30665a..21ba42d 100644 (file)
@@ -17,6 +17,7 @@
 
 package net.pterodactylus.sone.data;
 
+import java.util.Comparator;
 import java.util.UUID;
 
 /**
@@ -27,12 +28,25 @@ import java.util.UUID;
  */
 public class Post {
 
+       /** Comparator for posts, sorts descending by time. */
+       public static final Comparator<Post> TIME_COMPARATOR = new Comparator<Post>() {
+
+               @Override
+               public int compare(Post leftPost, Post rightPost) {
+                       return (int) Math.max(Integer.MIN_VALUE, Math.min(Integer.MAX_VALUE, rightPost.getTime() - leftPost.getTime()));
+               }
+
+       };
+
        /** The GUID of the post. */
        private final UUID id;
 
        /** The Sone this post belongs to. */
        private volatile Sone sone;
 
+       /** The Sone of the recipient. */
+       private volatile Sone recipient;
+
        /** The time of the post (in milliseconds since Jan 1, 1970 UTC). */
        private volatile long time;
 
@@ -129,6 +143,27 @@ public class Post {
        }
 
        /**
+        * Returns the recipient of this post, if any.
+        *
+        * @return The recipient of this post, or {@code null}
+        */
+       public Sone getRecipient() {
+               return recipient;
+       }
+
+       /**
+        * Sets the recipient of this post.
+        *
+        * @param recipient
+        *            The recipient of this post, or {@code null}
+        * @return This post (for method chaining)
+        */
+       public Post setRecipient(Sone recipient) {
+               this.recipient = recipient;
+               return this;
+       }
+
+       /**
         * Returns the time of the post.
         *
         * @return The time of the post (in milliseconds since Jan 1, 1970 UTC)