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 switch (outputWriter
) {
30 case JsonWriter jsonWriter
-> {
31 final var jsonAccounts
= accountNumbers
.stream().map(JsonAccount
::new).toList();
32 jsonWriter
.write(jsonAccounts
);
34 case PlainTextWriter plainTextWriter
-> {
35 for (final var number
: accountNumbers
) {
36 plainTextWriter
.println("Number: {}", number
);
42 private record JsonAccount(String number
) {}