]> nmode's Git Repositories - signal-cli/commitdiff
Add an enum for output types
authorAsamK <asamk@gmx.de>
Sat, 16 Jan 2021 17:52:06 +0000 (18:52 +0100)
committerAsamK <asamk@gmx.de>
Sat, 16 Jan 2021 17:52:06 +0000 (18:52 +0100)
src/main/java/org/asamk/signal/Cli.java
src/main/java/org/asamk/signal/OutputType.java [new file with mode: 0644]
src/main/java/org/asamk/signal/commands/DaemonCommand.java
src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java
src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
src/main/java/org/asamk/signal/commands/ReceiveCommand.java

index 9f7048adcd03e51a32f9d3d977f7ed2932b93ad4..8d46a0a934fe77683bbdb9a4a0b8afd68478c68c 100644 (file)
@@ -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 (file)
index 0000000..383d635
--- /dev/null
@@ -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";
+        }
+    },
+}
index 53f45ca3addc1f7213d63d8c49a86265d67870ab..e5c62ee7a1820ca11dfe60be51cf23d3c320b20b 100644 (file)
@@ -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<Manager> 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")) {
index f17fb96725000f847f44c81d17682b086d992e8b..447cbb03148b0fa798767bc8300f85cc53c213be 100644 (file)
@@ -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")) {
index 2a267a9a2c757537572a0fbda0cf661e0de23fa3..323fc098002ceeca181cdd6a0ac672334e1b015a 100644 (file)
@@ -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);
index 30518cb44f9dc5711dc7e2d4654cf002cb7c6416..e1d1581e554e1883f1a46b6f7bbdadaeb5a129fb 100644 (file)
@@ -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")) {