+ public String getId();
+
+ /**
+ * Returns whether this post has already been loaded.
+ *
+ * @return {@code true} if this post has already been loaded, {@code
+ * false} otherwise
+ */
+ boolean isLoaded();
+
+ /**
+ * Returns the Sone this post belongs to.
+ *
+ * @return The Sone of this post
+ */
+ public Sone getSone();
+
+ /**
+ * Returns the ID of the recipient {@link Sone}, or
+ * {@link Optional#absent()} if this post does not have a recipient.
+ *
+ * @return The ID of the recipient, or {@link Optional#absent()}
+ */
+ public Optional<String> getRecipientId();
+
+ /**
+ * Returns the recipient of this post, if any.
+ *
+ * @return The recipient of this post, or {@link Optional#absent()} if there
+ * is no recipient
+ */
+ public Optional<Sone> getRecipient();