1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
4 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
6 import org
.asamk
.signal
.commands
.exceptions
.CommandException
;
7 import org
.asamk
.signal
.manager
.MultiAccountManager
;
8 import org
.asamk
.signal
.output
.JsonWriter
;
9 import org
.asamk
.signal
.output
.OutputWriter
;
10 import org
.asamk
.signal
.output
.PlainTextWriter
;
12 public class ListAccountsCommand
implements JsonRpcMultiLocalCommand
{
15 public String
getName() {
16 return "listAccounts";
20 public void attachToSubparser(final Subparser subparser
) {
21 subparser
.help("Show a list of registered accounts.");
25 public void handleCommand(
26 final Namespace ns
, final MultiAccountManager c
, final OutputWriter outputWriter
27 ) throws CommandException
{
28 final var accountNumbers
= c
.getAccountNumbers();
29 if (outputWriter
instanceof JsonWriter jsonWriter
) {
30 final var jsonAccounts
= accountNumbers
.stream().map(JsonAccount
::new).toList();
31 jsonWriter
.write(jsonAccounts
);
32 } else if (outputWriter
instanceof PlainTextWriter plainTextWriter
) {
33 for (final var number
: accountNumbers
) {
34 plainTextWriter
.println("Number: {}", number
);
39 private record JsonAccount(String number
) {}