Add parameter that determines whether an FCP command requires write access.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Mon, 11 Apr 2011 09:21:55 +0000 (11:21 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Mon, 11 Apr 2011 09:21:55 +0000 (11:21 +0200)
src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java
src/main/java/net/pterodactylus/sone/fcp/VersionCommand.java

index 87a76e2..ed5aca8 100644 (file)
@@ -44,6 +44,9 @@ public abstract class AbstractSoneCommand extends AbstractCommand {
        /** The Sone core. */
        private final Core core;
 
+       /** Whether this command needs write access. */
+       private final boolean writeAccess;
+
        /**
         * Creates a new abstract Sone FCP command.
         *
@@ -51,7 +54,21 @@ public abstract class AbstractSoneCommand extends AbstractCommand {
         *            The Sone core
         */
        protected AbstractSoneCommand(Core core) {
+               this(core, false);
+       }
+
+       /**
+        * Creates a new abstract Sone FCP command.
+        *
+        * @param core
+        *            The Sone core
+        * @param writeAccess
+        *            {@code true} if this command requires write access,
+        *            {@code false} otherwise
+        */
+       protected AbstractSoneCommand(Core core, boolean writeAccess) {
                this.core = core;
+               this.writeAccess = writeAccess;
        }
 
        //
@@ -67,6 +84,16 @@ public abstract class AbstractSoneCommand extends AbstractCommand {
                return core;
        }
 
+       /**
+        * Returns whether this command requires write access.
+        *
+        * @return {@code true} if this command require write access, {@code false}
+        *         otherwise
+        */
+       public boolean requiresWriteAccess() {
+               return writeAccess;
+       }
+
        //
        // PROTECTED METHODS
        //
index 6817476..1e135b5 100644 (file)
@@ -17,8 +17,8 @@
 
 package net.pterodactylus.sone.fcp;
 
+import net.pterodactylus.sone.core.Core;
 import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder;
-import net.pterodactylus.sone.freenet.fcp.Command;
 import net.pterodactylus.sone.main.SonePlugin;
 import freenet.support.SimpleFieldSet;
 import freenet.support.api.Bucket;
@@ -28,7 +28,17 @@ import freenet.support.api.Bucket;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class VersionCommand implements Command {
+public class VersionCommand extends AbstractSoneCommand {
+
+       /**
+        * Creates a new “Version” FCP command.
+        *
+        * @param core
+        *            The Sone core
+        */
+       protected VersionCommand(Core core) {
+               super(core);
+       }
 
        /**
         * {@inheritDoc}