X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/d0d3e207135f8625d20461b4444e12d6baa1b6b6..a7db3a5610db2cf718030fbe06e5ebb8531459c8:/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 index 00000000..8e138b3f --- /dev/null +++ b/src/main/java/org/asamk/signal/commands/CommandHandler.java @@ -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); + } +}