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 import java
.util
.stream
.Collectors
;
14 public class ListAccountsCommand
implements JsonRpcMultiLocalCommand
{
17 public String
getName() {
18 return "listAccounts";
22 public void attachToSubparser(final Subparser subparser
) {
23 subparser
.help("Show a list of registered accounts.");
27 public void handleCommand(
28 final Namespace ns
, final MultiAccountManager c
, final OutputWriter outputWriter
29 ) throws CommandException
{
30 final var accountNumbers
= c
.getAccountNumbers();
31 if (outputWriter
instanceof JsonWriter jsonWriter
) {
32 final var jsonAccounts
= accountNumbers
.stream().map(JsonAccount
::new).collect(Collectors
.toList());
33 jsonWriter
.write(jsonAccounts
);
34 } else if (outputWriter
instanceof PlainTextWriter plainTextWriter
) {
35 for (final var number
: accountNumbers
) {
36 plainTextWriter
.println("Number: {}", number
);
41 private record JsonAccount(String number
) {}