Actually allow the Sone to be missing in getOptionalSone().
[Sone.git] / src / main / java / net / pterodactylus / sone / fcp / AbstractSoneCommand.java
index b4c24bb..62d6a53 100644 (file)
@@ -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;
@@ -119,8 +119,8 @@ public abstract class AbstractSoneCommand extends AbstractCommand {
        }
 
        protected Optional<Sone> getOptionalSone(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
-               String soneId = getMandatoryParameter(simpleFieldSet, parameterName);
-               return core.getSone(soneId);
+               String soneId = getString(simpleFieldSet, parameterName, null);
+               return (soneId == null) ? Optional.<Sone>absent() : core.getSone(soneId);
        }
 
        protected Sone getMandatoryLocalSone(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
@@ -273,7 +273,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand {
        protected SimpleFieldSet encodePostWithReplies(Post post, String prefix) {
                SimpleFieldSetBuilder postBuilder = createPostBuilderFromPost(post, prefix);
 
-               List<PostReply> replies = post.getReplies();
+               List<PostReply> replies = from(post.getReplies()).filter(FUTURE_REPLY_FILTER).toList();
                postBuilder.put(encodeReplies(replies, prefix));
 
                return postBuilder.get();
@@ -319,7 +319,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand {
                int postIndex = 0;
                for (Post post : posts) {
                        String postPrefix = prefix + postIndex++;
-                       postBuilder.put(encodeReplies(from(post.getReplies()).filter(Reply.FUTURE_REPLY_FILTER).toList(), postPrefix + "."));
+                       postBuilder.put(encodeReplies(from(post.getReplies()).filter(FUTURE_REPLY_FILTER).toList(), postPrefix + "."));
                }
 
                return postBuilder.get();