+ /**
+ * Returns all replies to this post in unspecified order.
+ *
+ * @return All replies to this post
+ */
+ public List<Reply> getReplies() {
+ List<Reply> sortedReplies = new ArrayList<Reply>(replies);
+ Collections.sort(sortedReplies, new Comparator<Reply>() {
+
+ @Override
+ public int compare(Reply leftReply, Reply rightReply) {
+ return (int) Math.max(Integer.MIN_VALUE, Math.min(Integer.MAX_VALUE, leftReply.getTime() - rightReply.getTime()));
+ }
+
+ });
+ return sortedReplies;
+ }
+
+ /**
+ * Adds a reply to this post. The reply will not be added if its
+ * {@link Reply#getPost() post} is not equal to this post.
+ *
+ * @param reply
+ * The reply to add
+ */
+ public void addReply(Reply reply) {
+ if (reply.getPost().equals(this)) {
+ replies.add(reply);
+ }
+ }
+
+ /**
+ * Removes a reply from this post.
+ *
+ * @param reply
+ * The reply to remove
+ */
+ public void removeReply(Reply reply) {
+ if (reply.getPost().equals(this)) {
+ replies.remove(reply);
+ }
+ }
+