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