import java.util.List;
import net.pterodactylus.sone.core.Core;
+import net.pterodactylus.sone.data.LocalSone;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.PostReply;
import net.pterodactylus.sone.data.Profile;
* @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 Sone getSone(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
+ return getSone(simpleFieldSet, parameterName, true).get();
+ }
+
+ /**
+ * 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
+ * @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 LocalSone getLocalSone(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException {
+ return getLocalSone(simpleFieldSet, parameterName, true).get();
}
/**
* @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
* 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 {
+ protected Optional<Sone> getSone(SimpleFieldSet simpleFieldSet, String parameterName, boolean mandatory) throws FcpException {
String soneId = simpleFieldSet.get(parameterName);
if (mandatory && (soneId == null)) {
throw new FcpException("Could not load Sone ID from “" + parameterName + "”.");
}
Optional<Sone> sone = core.getSone(soneId);
- if ((mandatory && !sone.isPresent()) || (mandatory && sone.isPresent() && (localOnly && !sone.get().isLocal()))) {
+ if ((mandatory && !sone.isPresent()) || (mandatory && sone.isPresent())) {
+ throw new FcpException("Could not load Sone from “" + soneId + "”.");
+ }
+ return sone;
+ }
+
+ /**
+ * 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 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<LocalSone> getLocalSone(SimpleFieldSet simpleFieldSet, String parameterName, boolean mandatory) throws FcpException {
+ String soneId = simpleFieldSet.get(parameterName);
+ if (mandatory && (soneId == null)) {
+ throw new FcpException("Could not load Sone ID from “" + parameterName + "”.");
+ }
+ Optional<LocalSone> sone = core.getLocalSone(soneId);
+ if ((mandatory && !sone.isPresent()) || (mandatory && sone.isPresent() && !sone.get().isLocal())) {
throw new FcpException("Could not load Sone from “" + soneId + "”.");
}
return sone;
* such as if the Sone is followed by the local Sone
* @return The simple field set containing the given Sone
*/
- protected static SimpleFieldSet encodeSone(Sone sone, String prefix, Optional<Sone> localSone) {
+ protected static SimpleFieldSet encodeSone(Sone sone, String prefix, Optional<LocalSone> localSone) {
SimpleFieldSetBuilder soneBuilder = new SimpleFieldSetBuilder();
soneBuilder.put(prefix + "Name", sone.getName());