JAL-3954 Implement NullAction and NullTask for testing purposes
[jalview.git] / src / jalview / ws2 / actions / NullAction.java
diff --git a/src/jalview/ws2/actions/NullAction.java b/src/jalview/ws2/actions/NullAction.java
new file mode 100644 (file)
index 0000000..655a133
--- /dev/null
@@ -0,0 +1,52 @@
+package jalview.ws2.actions;
+
+import java.util.List;
+
+import jalview.viewmodel.AlignmentViewport;
+import jalview.ws.params.ArgumentI;
+import jalview.ws2.actions.api.ActionI;
+import jalview.ws2.actions.api.TaskEventListener;
+import jalview.ws2.actions.api.TaskI;
+import jalview.ws2.api.Credentials;
+
+/**
+ * An empty implementation of the {@link ActionI} interface that does nothing.
+ * Use as a placeholder for testing purposes.
+ * 
+ * @author mmwarowny
+ *
+ */
+public final class NullAction extends BaseAction<Void>
+{
+  public static final class Builder extends BaseAction.Builder<NullAction>
+  {
+    public NullAction build()
+    {
+      return new NullAction(this);
+    }
+  }
+  
+  public static Builder newBuilder()
+  {
+    return new Builder();
+  }
+  
+  protected NullAction(Builder builder)
+  {
+    super(builder);
+  }
+
+  @Override
+  public TaskI<Void> perform(AlignmentViewport viewport,
+          List<ArgumentI> args, Credentials credentials,
+          TaskEventListener<Void> handler)
+  {
+    return new NullTask();
+  }
+
+  @Override
+  public boolean isActive(AlignmentViewport viewport)
+  {
+    return false;
+  }
+}