X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffcp%2FAbstractSoneCommand.java;h=16175239ed41b63c3ba3f56020cf1a5249f76101;hp=d88872ee9b2d83ad9698ab9c6f12951d665480ed;hb=93fdf9e218d808f65f618abbddce183191d8c15b;hpb=47ed7eaf00c35889781831d33d04e9f91c9ad266 diff --git a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java index d88872e..1617523 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java @@ -1,5 +1,5 @@ /* - * Sone - FcpInterface.java - Copyright © 2011 David Roden + * Sone - AbstractSoneCommand.java - Copyright © 2011–2013 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,16 +22,20 @@ import java.util.List; import net.pterodactylus.sone.core.Core; 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.data.Profile.Field; import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder; import net.pterodactylus.sone.freenet.fcp.AbstractCommand; import net.pterodactylus.sone.freenet.fcp.Command; import net.pterodactylus.sone.freenet.fcp.FcpException; import net.pterodactylus.sone.template.SoneAccessor; -import net.pterodactylus.util.filter.Filters; + +import com.google.common.base.Optional; +import com.google.common.collect.Collections2; + import freenet.node.FSParseException; import freenet.support.SimpleFieldSet; @@ -109,7 +113,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * The text to encode * @return The encoded text */ - protected String encodeString(String text) { + protected static String encodeString(String text) { return text.replaceAll("\\\\", "\\\\").replaceAll("\n", "\\\\n").replaceAll("\r", "\\\\r"); } @@ -182,7 +186,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { protected Post getPost(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException { try { String postId = simpleFieldSet.getString(parameterName); - Post post = core.getPost(postId, false); + Post post = core.getPost(postId); if (post == null) { throw new FcpException("Could not load post from “" + postId + "”."); } @@ -205,14 +209,14 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * if there is no reply ID stored under the given parameter * name, or if the reply ID is invalid */ - protected Reply getReply(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException { + protected PostReply getReply(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException { try { String replyId = simpleFieldSet.getString(parameterName); - Reply reply = core.getReply(replyId, false); - if (reply == null) { + Optional reply = core.getPostReply(replyId); + if (!reply.isPresent()) { throw new FcpException("Could not load reply from “" + replyId + "”."); } - return reply; + return reply.get(); } catch (FSParseException fspe1) { throw new FcpException("Could not reply ID from “" + parameterName + "”.", fspe1); } @@ -232,7 +236,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * such as if the Sone is followed by the local Sone * @return The simple field set containing the given Sone */ - protected SimpleFieldSet encodeSone(Sone sone, String prefix, Sone localSone) { + protected static SimpleFieldSet encodeSone(Sone sone, String prefix, Sone localSone) { SimpleFieldSetBuilder soneBuilder = new SimpleFieldSetBuilder(); soneBuilder.put(prefix + "Name", sone.getName()); @@ -263,7 +267,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * {@code null}) * @return The simple field set containing the given Sones */ - protected SimpleFieldSet encodeSones(Collection sones, String prefix) { + protected static SimpleFieldSet encodeSones(Collection sones, String prefix) { SimpleFieldSetBuilder soneBuilder = new SimpleFieldSetBuilder(); int soneIndex = 0; @@ -305,7 +309,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { postBuilder.put(encodeLikes(core.getLikes(post), prefix + "Likes.")); if (includeReplies) { - List replies = core.getReplies(post); + List replies = core.getReplies(post); postBuilder.put(encodeReplies(replies, prefix)); } @@ -334,7 +338,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { String postPrefix = prefix + postIndex++; postBuilder.put(encodePost(post, postPrefix + ".", includeReplies)); if (includeReplies) { - postBuilder.put(encodeReplies(Filters.filteredList(core.getReplies(post), Reply.FUTURE_REPLIES_FILTER), postPrefix + ".")); + postBuilder.put(encodeReplies(Collections2.filter(core.getReplies(post), Reply.FUTURE_REPLY_FILTER), postPrefix + ".")); } } @@ -351,12 +355,12 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * {@code null}) * @return The simple field set containing the replies */ - protected SimpleFieldSet encodeReplies(Collection replies, String prefix) { + protected static SimpleFieldSet encodeReplies(Collection replies, String prefix) { SimpleFieldSetBuilder replyBuilder = new SimpleFieldSetBuilder(); int replyIndex = 0; replyBuilder.put(prefix + "Replies.Count", replies.size()); - for (Reply reply : replies) { + for (PostReply reply : replies) { String replyPrefix = prefix + "Replies." + replyIndex++ + "."; replyBuilder.put(replyPrefix + "ID", reply.getId()); replyBuilder.put(replyPrefix + "Sone", reply.getSone().getId()); @@ -378,7 +382,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * {@code null}) * @return The simple field set containing the likes */ - protected SimpleFieldSet encodeLikes(Collection likes, String prefix) { + protected static SimpleFieldSet encodeLikes(Collection likes, String prefix) { SimpleFieldSetBuilder likesBuilder = new SimpleFieldSetBuilder(); int likeIndex = 0;