import java.util.Comparator;
+import com.google.common.base.Optional;
import com.google.common.base.Predicate;
/**
public Sone getSone();
/**
- * Returns the recipient of this post, if any.
+ * Returns the ID of the recipient {@link Sone}, or
+ * {@link Optional#absent()} if this post does not have a recipient.
*
- * @return The recipient of this post, or {@code null}
+ * @return The ID of the recipient, or {@link Optional#absent()}
*/
- public Sone getRecipient();
+ 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.
+ *
+ * @return The recipient of this post, or {@link Optional#absent()} if there
+ * is no recipient
+ */
+ public Optional<Sone> getRecipient();
/**
* Returns the time of the post.