return text.replaceAll("\\\\", "\\\\\\\\").replaceAll("\n", "\\\\n").replaceAll("\r", "\\\\r");
}
- /**
- * Returns a Sone whose ID is a parameter in the given simple field set.
- *
- * @param simpleFieldSet
- * The simple field set containing the ID of the Sone
- * @param parameterName
- * The name under which the Sone ID is stored in the simple field
- * set
- * @param localOnly
- * {@code true} to only return local Sones, {@code false} to
- * return any Sones
- * @return The Sone
- * @throws FcpException
- * if there is no Sone ID stored under the given parameter name,
- * or if the Sone ID is invalid
- */
- protected Sone getSone(SimpleFieldSet simpleFieldSet, String parameterName, boolean localOnly) throws FcpException {
- return getSone(simpleFieldSet, parameterName, localOnly, true).get();
+ protected Optional<Sone> getOptionalSone(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
+ String soneId = getMandatoryParameter(simpleFieldSet, parameterName);
+ return core.getSone(soneId);
}
- /**
- * Returns a Sone whose ID is a parameter in the given simple field set.
- *
- * @param simpleFieldSet
- * The simple field set containing the ID of the Sone
- * @param parameterName
- * The name under which the Sone ID is stored in the simple field
- * set
- * @param localOnly
- * {@code true} to only return local Sones, {@code false} to
- * return any Sones
- * @param mandatory
- * {@code true} if a valid Sone ID is required, {@code false}
- * otherwise
- * @return The Sone, or {@code null} if {@code mandatory} is {@code false}
- * and the Sone ID is invalid
- * @throws FcpException
- * if there is no Sone ID stored under the given parameter name,
- * or if {@code mandatory} is {@code true} and the Sone ID is
- * invalid
- */
- protected Optional<Sone> getSone(SimpleFieldSet simpleFieldSet, String parameterName, boolean localOnly, boolean mandatory) throws FcpException {
- String soneId = simpleFieldSet.get(parameterName);
- if (mandatory && (soneId == null)) {
- throw new FcpException("Could not load Sone ID from “" + parameterName + "”.");
+ protected Sone getMandatoryLocalSone(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
+ Sone sone = getMandatorySone(simpleFieldSet, parameterName);
+ if (!sone.isLocal()) {
+ throw new FcpException("Could not load Sone from “" + sone.getId() + "”.");
}
+ return sone;
+ }
+
+ protected Sone getMandatorySone(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
+ String soneId = getMandatoryParameter(simpleFieldSet, parameterName);
+ Optional<Sone> sone = getMandatorySone(soneId);
+ return sone.get();
+ }
+
+ private Optional<Sone> getMandatorySone(String soneId) throws FcpException {
Optional<Sone> sone = core.getSone(soneId);
- if ((mandatory && !sone.isPresent()) || (mandatory && sone.isPresent() && (localOnly && !sone.get().isLocal()))) {
+ if (!sone.isPresent()) {
throw new FcpException("Could not load Sone from “" + soneId + "”.");
}
return sone;
}
+ private String getMandatoryParameter(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
+ String soneId = simpleFieldSet.get(parameterName);
+ if (soneId == null) {
+ throw new FcpException("Could not load Sone ID from “" + parameterName + "”.");
+ }
+ return soneId;
+ }
+
/**
* Returns a post whose ID is a parameter in the given simple field set.
*
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Sone sone = getSone(parameters, "Sone", true);
+ Sone sone = getMandatoryLocalSone(parameters, "Sone");
String text = getString(parameters, "Text");
Sone recipient = null;
if (parameters.get("Recipient") != null) {
- recipient = getSone(parameters, "Recipient", false);
+ recipient = getMandatorySone(parameters, "Recipient");
}
if (sone.equals(recipient)) {
return new ErrorResponse("Sone and Recipient must not be the same.");
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Sone sone = getSone(parameters, "Sone", true);
+ Sone sone = getMandatoryLocalSone(parameters, "Sone");
Post post = getPost(parameters, "Post");
String text = getString(parameters, "Text");
PostReply reply = sone.newPostReplyBuilder(post.getId()).withText(text).build(getCore().postReplyCreated());
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Sone sone = getSone(parameters, "Sone", true);
+ Sone sone = getMandatoryLocalSone(parameters, "Sone");
int startPost = getInt(parameters, "StartPost", 0);
int maxPosts = getInt(parameters, "MaxPosts", -1);
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Sone sone = getSone(parameters, "Sone", false);
+ Sone sone = getMandatorySone(parameters, "Sone");
int startPost = getInt(parameters, "StartPost", 0);
int maxPosts = getInt(parameters, "MaxPosts", -1);
List<Post> posts = sone.getPosts();
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Sone sone = getSone(parameters, "Sone", false);
- Optional<Sone> localSone = getSone(parameters, "LocalSone", false, false);
+ Sone sone = getMandatorySone(parameters, "Sone");
+ Optional<Sone> localSone = getOptionalSone(parameters, "LocalSone");
return new Response("Sone", encodeSone(sone, "", localSone));
}
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
Post post = getPost(parameters, "Post");
- Sone sone = getSone(parameters, "Sone", true);
+ Sone sone = getMandatoryLocalSone(parameters, "Sone");
sone.addLikedPostId(post.getId());
return new Response("PostLiked", new SimpleFieldSetBuilder().put("LikeCount", getCore().getLikes(post).size()).get());
}
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
PostReply reply = getReply(parameters, "Reply");
- Sone sone = getSone(parameters, "Sone", true);
+ Sone sone = getMandatoryLocalSone(parameters, "Sone");
sone.addLikedReplyId(reply.getId());
return new Response("ReplyLiked", new SimpleFieldSetBuilder().put("LikeCount", getCore().getLikes(reply).size()).get());
}
import freenet.support.SimpleFieldSet;
import freenet.support.api.Bucket;
-import com.google.common.base.Optional;
-
/**
* Implements the “LockSone” FCP command. If a valid local Sone was given as
* parameter “Sone,” this command will always lock the Sone and reply with
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Optional<Sone> sone = getSone(parameters, "Sone", true, true);
- getCore().lockSone(sone.get());
- return new Response("SoneLocked", new SimpleFieldSetBuilder().put("Sone", sone.get().getId()).get());
+ Sone sone = getMandatoryLocalSone(parameters, "Sone");
+ getCore().lockSone(sone);
+ return new Response("SoneLocked", new SimpleFieldSetBuilder().put("Sone", sone.getId()).get());
}
}
import freenet.support.SimpleFieldSet;
import freenet.support.api.Bucket;
-import com.google.common.base.Optional;
-
/**
* Implements the “UnlockSone” FCP command. If a valid local Sone was given as
* parameter “Sone,” this command will always unlock the Sone and reply with
@Override
public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
- Optional<Sone> sone = getSone(parameters, "Sone", true, true);
- getCore().unlockSone(sone.get());
- return new Response("SoneUnlocked", new SimpleFieldSetBuilder().put("Sone", sone.get().getId()).get());
+ Sone sone = getMandatoryLocalSone(parameters, "Sone");
+ getCore().unlockSone(sone);
+ return new Response("SoneUnlocked", new SimpleFieldSetBuilder().put("Sone", sone.getId()).get());
}
}