From: AsamK Date: Sat, 16 Jan 2021 17:52:06 +0000 (+0100) Subject: Add an enum for output types X-Git-Tag: v0.7.3~11 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/d4b4bd86038025ec69e95c9994e30077d1c9d241?hp=14c8f07b8d173eb162511075da1b4b1108773768 Add an enum for output types --- diff --git a/src/main/java/org/asamk/signal/Cli.java b/src/main/java/org/asamk/signal/Cli.java index 9f7048ad..8d46a0a9 100644 --- a/src/main/java/org/asamk/signal/Cli.java +++ b/src/main/java/org/asamk/signal/Cli.java @@ -65,8 +65,8 @@ public class Cli { parser.addArgument("-o", "--output") .help("Choose to output in plain text or JSON") - .choices("plain-text", "json") - .setDefault("plain-text"); + .type(Arguments.enumStringType(OutputType.class)) + .setDefault(OutputType.PLAIN_TEXT); Subparsers subparsers = parser.addSubparsers().title("subcommands").dest("command"); diff --git a/src/main/java/org/asamk/signal/OutputType.java b/src/main/java/org/asamk/signal/OutputType.java new file mode 100644 index 00000000..383d635f --- /dev/null +++ b/src/main/java/org/asamk/signal/OutputType.java @@ -0,0 +1,16 @@ +package org.asamk.signal; + +public enum OutputType { + PLAIN_TEXT { + @Override + public String toString() { + return "plain-text"; + } + }, + JSON { + @Override + public String toString() { + return "json"; + } + }, +} diff --git a/src/main/java/org/asamk/signal/commands/DaemonCommand.java b/src/main/java/org/asamk/signal/commands/DaemonCommand.java index 53f45ca3..e5c62ee7 100644 --- a/src/main/java/org/asamk/signal/commands/DaemonCommand.java +++ b/src/main/java/org/asamk/signal/commands/DaemonCommand.java @@ -7,6 +7,7 @@ import net.sourceforge.argparse4j.inf.Subparser; import org.asamk.signal.DbusConfig; import org.asamk.signal.DbusReceiveMessageHandler; import org.asamk.signal.JsonDbusReceiveMessageHandler; +import org.asamk.signal.OutputType; import org.asamk.signal.dbus.DbusSignalImpl; import org.asamk.signal.manager.Manager; import org.freedesktop.dbus.connections.impl.DBusConnection; @@ -38,7 +39,7 @@ public class DaemonCommand implements MultiLocalCommand { @Override public int handleCommand(final Namespace ns, final Manager m) { - boolean inJson = ns.getString("output").equals("json") || ns.getBoolean("json"); + boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json"); // TODO delete later when "json" variable is removed if (ns.getBoolean("json")) { @@ -73,7 +74,7 @@ public class DaemonCommand implements MultiLocalCommand { @Override public int handleCommand(final Namespace ns, final List managers) { - boolean inJson = ns.getString("output").equals("json") || ns.getBoolean("json"); + boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json"); // TODO delete later when "json" variable is removed if (ns.getBoolean("json")) { diff --git a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java index f17fb967..447cbb03 100644 --- a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java +++ b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java @@ -7,6 +7,7 @@ import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparser; +import org.asamk.signal.OutputType; import org.asamk.signal.manager.Manager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,7 +38,7 @@ public class GetUserStatusCommand implements LocalCommand { ObjectMapper jsonProcessor = new ObjectMapper(); jsonProcessor.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); - boolean inJson = ns.getString("output").equals("json") || ns.getBoolean("json"); + boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json"); // TODO delete later when "json" variable is removed if (ns.getBoolean("json")) { diff --git a/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java b/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java index 2a267a9a..323fc098 100644 --- a/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java @@ -9,6 +9,7 @@ import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparser; +import org.asamk.signal.OutputType; import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.groups.GroupInviteLinkUrl; import org.asamk.signal.manager.storage.groups.GroupInfo; @@ -75,7 +76,7 @@ public class ListGroupsCommand implements LocalCommand { @Override public int handleCommand(final Namespace ns, final Manager m) { - if (ns.getString("output").equals("json")) { + if (ns.get("output") == OutputType.JSON) { final ObjectMapper jsonProcessor = new ObjectMapper(); jsonProcessor.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); jsonProcessor.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); diff --git a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java index 30518cb4..e1d1581e 100644 --- a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java +++ b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java @@ -12,6 +12,7 @@ import net.sourceforge.argparse4j.inf.Subparser; import org.asamk.Signal; import org.asamk.signal.JsonReceiveMessageHandler; +import org.asamk.signal.OutputType; import org.asamk.signal.ReceiveMessageHandler; import org.asamk.signal.json.JsonMessageEnvelope; import org.asamk.signal.manager.Manager; @@ -48,7 +49,7 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand { public int handleCommand(final Namespace ns, final Signal signal, DBusConnection dbusconnection) { final ObjectMapper jsonProcessor; - boolean inJson = ns.getString("output").equals("json") || ns.getBoolean("json"); + boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json"); // TODO delete later when "json" variable is removed if (ns.getBoolean("json")) { @@ -156,7 +157,7 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand { @Override public int handleCommand(final Namespace ns, final Manager m) { - boolean inJson = ns.getString("output").equals("json") || ns.getBoolean("json"); + boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json"); // TODO delete later when "json" variable is removed if (ns.getBoolean("json")) {