+ 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())) {