X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffcp%2FAbstractSoneCommand.java;h=a66fdaee6d5f93d31779419476c6378a6e9553c5;hb=959c51e271d7da6566ecd13b912ede0d5e627b3d;hp=6890589fcf5fa6676084a656e619f1c11e23b14a;hpb=e80be3f00b1d486fd3995d8f29ce3bf04da7b61d;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java index 6890589..a66fdae 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java @@ -18,6 +18,7 @@ package net.pterodactylus.sone.fcp; import static com.google.common.collect.FluentIterable.from; +import static net.pterodactylus.sone.data.Reply.FUTURE_REPLY_FILTER; import java.util.Collection; import java.util.List; @@ -27,7 +28,6 @@ import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Profile.Field; -import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder; import net.pterodactylus.sone.freenet.fcp.AbstractCommand; @@ -266,20 +266,20 @@ public abstract class AbstractSoneCommand extends AbstractCommand { return soneBuilder.get(); } - /** - * Creates a simple field set from the given post. - * - * @param post - * The post to encode - * @param prefix - * The prefix for the field names (may be empty but not - * {@code null}) - * @param includeReplies - * {@code true} to include replies, {@code false} to not include - * replies - * @return The simple field set containing the post - */ - protected SimpleFieldSet encodePost(Post post, String prefix, boolean includeReplies) { + protected SimpleFieldSet encodePost(Post post, String prefix) { + return createPostBuilderFromPost(post, prefix).get(); + } + + protected SimpleFieldSet encodePostWithReplies(Post post, String prefix) { + SimpleFieldSetBuilder postBuilder = createPostBuilderFromPost(post, prefix); + + List replies = from(post.getReplies()).filter(FUTURE_REPLY_FILTER).toList(); + postBuilder.put(encodeReplies(replies, prefix)); + + return postBuilder.get(); + } + + private SimpleFieldSetBuilder createPostBuilderFromPost(Post post, String prefix) { SimpleFieldSetBuilder postBuilder = new SimpleFieldSetBuilder(); postBuilder.put(prefix + "ID", post.getId()); @@ -291,38 +291,35 @@ public abstract class AbstractSoneCommand extends AbstractCommand { postBuilder.put(prefix + "Text", encodeString(post.getText())); postBuilder.put(encodeLikes(core.getLikes(post), prefix + "Likes.")); - if (includeReplies) { - List replies = post.getReplies(); - postBuilder.put(encodeReplies(replies, prefix)); - } + return postBuilder; + } + + protected SimpleFieldSet encodePosts(Collection posts, String prefix) { + SimpleFieldSetBuilder postBuilder = createPostBuilderFromPosts(posts, prefix); return postBuilder.get(); } - /** - * Creates a simple field set from the given collection of posts. - * - * @param posts - * The posts to encode - * @param prefix - * The prefix for the field names (may be empty but not - * {@code null}) - * @param includeReplies - * {@code true} to include the replies, {@code false} to not - * include the replies - * @return The simple field set containing the posts - */ - protected SimpleFieldSet encodePosts(Collection posts, String prefix, boolean includeReplies) { + private SimpleFieldSetBuilder createPostBuilderFromPosts(Collection posts, String prefix) { SimpleFieldSetBuilder postBuilder = new SimpleFieldSetBuilder(); int postIndex = 0; postBuilder.put(prefix + "Count", posts.size()); for (Post post : posts) { String postPrefix = prefix + postIndex++; - postBuilder.put(encodePost(post, postPrefix + ".", includeReplies)); - if (includeReplies) { - postBuilder.put(encodeReplies(from(post.getReplies()).filter(Reply.FUTURE_REPLY_FILTER).toList(), postPrefix + ".")); - } + postBuilder.put(encodePost(post, postPrefix + ".")); + } + + return postBuilder; + } + + protected SimpleFieldSet encodePostsWithReplies(Collection posts, String prefix) { + SimpleFieldSetBuilder postBuilder = createPostBuilderFromPosts(posts, prefix); + + int postIndex = 0; + for (Post post : posts) { + String postPrefix = prefix + postIndex++; + postBuilder.put(encodeReplies(from(post.getReplies()).filter(FUTURE_REPLY_FILTER).toList(), postPrefix + ".")); } return postBuilder.get();