+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);
+ }
+}