X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffcp%2FAbstractSoneCommand.java;h=f3e29232e4777762cf5d3e164de9429bb99a496c;hb=941e378448a09d3895979b192ee144df6d855c9f;hp=4f5332123acfc1e41008f4bf5d2f1e0949d77fae;hpb=96e4cdd1c5a2dc719afbf1f1cc14a3c62e93f432;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 4f53321..f3e2923 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java @@ -139,11 +139,11 @@ public abstract class AbstractSoneCommand extends AbstractCommand { int soneIndex = 0; soneBuilder.put(prefix + "Count", sones.size()); for (Sone sone : sones) { - String sonePrefix = prefix + soneIndex++; - soneBuilder.put(sonePrefix + ".ID", sone.getId()); - soneBuilder.put(sonePrefix + ".Name", sone.getName()); - soneBuilder.put(sonePrefix + ".NiceName", SoneAccessor.getNiceName(sone)); - soneBuilder.put(sonePrefix + ".Time", sone.getTime()); + String sonePrefix = prefix + soneIndex++ + "."; + soneBuilder.put(sonePrefix + "ID", sone.getId()); + soneBuilder.put(sonePrefix + "Name", sone.getName()); + soneBuilder.put(sonePrefix + "NiceName", SoneAccessor.getNiceName(sone)); + soneBuilder.put(sonePrefix + "Time", sone.getTime()); } return soneBuilder.get(); @@ -172,6 +172,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { } postBuilder.put(prefix + "Time", post.getTime()); postBuilder.put(prefix + "Text", post.getText()); + postBuilder.put(encodeLikes(core.getLikes(post), prefix + "Likes.")); if (includeReplies) { List replies = core.getReplies(post); @@ -194,7 +195,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * include the replies * @return The simple field set containing the posts */ - public SimpleFieldSet encodePosts(Collection posts, String prefix, boolean includeReplies) { + protected SimpleFieldSet encodePosts(Collection posts, String prefix, boolean includeReplies) { SimpleFieldSetBuilder postBuilder = new SimpleFieldSetBuilder(); int postIndex = 0; @@ -220,20 +221,44 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * {@code null}) * @return The simple field set containing the replies */ - public SimpleFieldSet encodeReplies(Collection replies, String prefix) { + protected SimpleFieldSet encodeReplies(Collection replies, String prefix) { SimpleFieldSetBuilder replyBuilder = new SimpleFieldSetBuilder(); int replyIndex = 0; replyBuilder.put(prefix + "Replies.Count", replies.size()); for (Reply reply : replies) { - String replyPrefix = prefix + "Replies." + replyIndex++; - replyBuilder.put(replyPrefix + ".ID", reply.getId()); - replyBuilder.put(replyPrefix + ".Sone", reply.getSone().getId()); - replyBuilder.put(replyPrefix + ".Time", reply.getTime()); - replyBuilder.put(replyPrefix + ".Text", reply.getText()); + String replyPrefix = prefix + "Replies." + replyIndex++ + "."; + replyBuilder.put(replyPrefix + "ID", reply.getId()); + replyBuilder.put(replyPrefix + "Sone", reply.getSone().getId()); + replyBuilder.put(replyPrefix + "Time", reply.getTime()); + replyBuilder.put(replyPrefix + "Text", reply.getText()); } return replyBuilder.get(); } + /** + * Creates a simple field set from the given collection of Sones that like + * an element. + * + * @param likes + * The liking Sones + * @param prefix + * The prefix for the field names (may be empty but not + * {@code null}) + * @return The simple field set containing the likes + */ + protected SimpleFieldSet encodeLikes(Collection likes, String prefix) { + SimpleFieldSetBuilder likesBuilder = new SimpleFieldSetBuilder(); + + int likeIndex = 0; + likesBuilder.put(prefix + "Count", likes.size()); + for (Sone sone : likes) { + String sonePrefix = prefix + likeIndex++ + "."; + likesBuilder.put(sonePrefix + "ID", sone.getId()); + } + + return likesBuilder.get(); + } + }