- @Override
- public String toString() {
- return getClass().getName() + "[id=" + getId() + ",name=" + getName() + ",requestUri=" + getRequestUri() + ",insertUri=" + getInsertUri() + ",posts(" + posts.size() + "),replies(" + replies.size() + ")]";
- }
+ @Nonnull
+ Sone setLikeReplyIds(@Nonnull Set<String> likedReplyIds);
+
+ /**
+ * Checks whether the given reply ID is liked by this Sone.
+ *
+ * @param replyId
+ * The ID of the reply
+ * @return {@code true} if this Sone likes the given reply, {@code false}
+ * otherwise
+ */
+ boolean isLikedReplyId(@Nonnull String replyId);
+
+ /**
+ * Adds the given reply ID to the list of replies this Sone likes.
+ *
+ * @param replyId
+ * The ID of the reply
+ * @return This Sone (for method chaining)
+ */
+ @Nonnull
+ Sone addLikedReplyId(@Nonnull String replyId);
+
+ /**
+ * Removes the given post ID from the list of replies this Sone likes.
+ *
+ * @param replyId
+ * The ID of the reply
+ */
+ void removeLikedReplyId(@Nonnull String replyId);
+
+ /**
+ * Returns the root album that contains all visible albums of this Sone.
+ *
+ * @return The root album of this Sone
+ */
+ @Nonnull
+ Album getRootAlbum();
+
+ /**
+ * Returns Sone-specific options.
+ *
+ * @return The options of this Sone
+ */
+ @Nonnull
+ SoneOptions getOptions();
+
+ /**
+ * Sets the options of this Sone.
+ *
+ * @param options
+ * The options of this Sone
+ */
+ /* TODO - remove this method again, maybe add an option provider */
+ void setOptions(@Nonnull SoneOptions options);