]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/CommandHandler.java
Extract dbus client command handling
[signal-cli] / src / main / java / org / asamk / signal / commands / CommandHandler.java
diff --git a/src/main/java/org/asamk/signal/commands/CommandHandler.java b/src/main/java/org/asamk/signal/commands/CommandHandler.java
new file mode 100644 (file)
index 0000000..8e138b3
--- /dev/null
@@ -0,0 +1,43 @@
+package org.asamk.signal.commands;
+
+import net.sourceforge.argparse4j.inf.Namespace;
+
+import org.asamk.signal.commands.exceptions.CommandException;
+import org.asamk.signal.manager.Manager;
+import org.asamk.signal.manager.MultiAccountManager;
+import org.asamk.signal.manager.ProvisioningManager;
+import org.asamk.signal.manager.RegistrationManager;
+import org.asamk.signal.output.OutputWriter;
+
+public class CommandHandler {
+
+    final Namespace ns;
+    final OutputWriter outputWriter;
+
+    public CommandHandler(final Namespace ns, final OutputWriter outputWriter) {
+        this.ns = ns;
+        this.outputWriter = outputWriter;
+    }
+
+    public void handleProvisioningCommand(
+            final ProvisioningCommand command, final ProvisioningManager provisioningManager
+    ) throws CommandException {
+        command.handleCommand(ns, provisioningManager, outputWriter);
+    }
+
+    public void handleRegistrationCommand(
+            final RegistrationCommand command, final RegistrationManager registrationManager
+    ) throws CommandException {
+        command.handleCommand(ns, registrationManager);
+    }
+
+    public void handleLocalCommand(final LocalCommand command, final Manager manager) throws CommandException {
+        command.handleCommand(ns, manager, outputWriter);
+    }
+
+    public void handleMultiLocalCommand(
+            final MultiLocalCommand command, MultiAccountManager multiAccountManager
+    ) throws CommandException {
+        command.handleCommand(ns, multiAccountManager, outputWriter);
+    }
+}