- try (var multiAccountManager = new MultiAccountManagerImpl(managers,
- dataPath,
- serviceEnvironment,
- BaseConfig.USER_AGENT)) {
- command.handleCommand(ns, multiAccountManager, outputWriter);
+ private void handleMultiLocalCommand(
+ final MultiLocalCommand c, final DBusConnection dBusConn, final OutputWriter outputWriter
+ ) throws CommandException, DBusException {
+ final var signalControl = dBusConn.getRemoteObject(DbusConfig.getBusname(),
+ DbusConfig.getObjectPath(),
+ SignalControl.class);
+ try (final var multiAccountManager = new DbusMultiAccountManagerImpl(signalControl, dBusConn)) {
+ c.handleCommand(ns, multiAccountManager, outputWriter);
+ } catch (UnsupportedOperationException e) {
+ throw new UserErrorException("Command is not yet implemented via dbus", e);
+ }
+ }
+
+ private RegistrationManager loadRegistrationManager(
+ final String account, final SignalAccountFiles signalAccountFiles
+ ) throws UnexpectedErrorException {
+ try {
+ return signalAccountFiles.initRegistrationManager(account);
+ } catch (Throwable e) {
+ throw new UnexpectedErrorException("Error loading or creating state file: "
+ + e.getMessage()
+ + " ("
+ + e.getClass().getSimpleName()
+ + ")", e);