Distinguish between local and “normal” Sones in FCP handler.
[Sone.git] / src / main / java / net / pterodactylus / sone / fcp / UnlockSoneCommand.java
index a187576..dc6058d 100644 (file)
 package net.pterodactylus.sone.fcp;
 
 import net.pterodactylus.sone.core.Core;
-import net.pterodactylus.sone.data.Sone;
+import net.pterodactylus.sone.data.LocalSone;
 import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder;
 import net.pterodactylus.sone.freenet.fcp.FcpException;
 
 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
@@ -50,9 +52,9 @@ public class UnlockSoneCommand extends AbstractSoneCommand {
 
        @Override
        public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException {
-               Sone sone = getSone(parameters, "Sone", true, true);
-               getCore().unlockSone(sone);
-               return new Response("SoneUnlocked", new SimpleFieldSetBuilder().put("Sone", sone.getId()).get());
+               Optional<LocalSone> sone = getLocalSone(parameters, "Sone", true);
+               getCore().unlockSone(sone.get());
+               return new Response("SoneUnlocked", new SimpleFieldSetBuilder().put("Sone", sone.get().getId()).get());
        }
 
 }