]> nmode's Git Repositories - signal-cli/commitdiff
Extract JsonRpcNamespace
authorAsamK <asamk@gmx.de>
Mon, 8 Nov 2021 13:57:38 +0000 (14:57 +0100)
committerAsamK <asamk@gmx.de>
Mon, 8 Nov 2021 21:16:45 +0000 (22:16 +0100)
src/main/java/org/asamk/signal/commands/JsonRpcLocalCommand.java
src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java [new file with mode: 0644]

index ccf327715d67966ce89f55115b1184b7b29f918e..653747adc3dd4ce556ee18cdd0cdb477e7a304cd 100644 (file)
@@ -8,7 +8,6 @@ import org.asamk.signal.OutputType;
 import org.asamk.signal.OutputWriter;
 import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.util.Util;
 
 import java.util.List;
 import java.util.Map;
@@ -29,39 +28,4 @@ public interface JsonRpcLocalCommand extends JsonRpcCommand<Map<String, Object>>
     default List<OutputType> getSupportedOutputTypes() {
         return List.of(OutputType.PLAIN_TEXT, OutputType.JSON);
     }
-
-    /**
-     * Namespace implementation, that has plural handling for list arguments and converts camel case keys to dashed strings
-     */
-    final class JsonRpcNamespace extends Namespace {
-
-        public JsonRpcNamespace(final Map<String, Object> attrs) {
-            super(attrs);
-        }
-
-        @Override
-        public <T> T get(String dest) {
-            final T value = super.get(dest);
-            if (value != null) {
-                return value;
-            }
-
-            final var camelCaseString = Util.dashSeparatedToCamelCaseString(dest);
-            return super.get(camelCaseString);
-        }
-
-        @Override
-        public <E> List<E> getList(final String dest) {
-            try {
-                final List<E> value = super.getList(dest);
-                if (value != null) {
-                    return value;
-                }
-            } catch (ClassCastException e) {
-                return List.of(this.<E>get(dest));
-            }
-
-            return super.getList(dest + "s");
-        }
-    }
 }
diff --git a/src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java b/src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java
new file mode 100644 (file)
index 0000000..8f60689
--- /dev/null
@@ -0,0 +1,43 @@
+package org.asamk.signal.commands;
+
+import net.sourceforge.argparse4j.inf.Namespace;
+
+import org.asamk.signal.util.Util;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Namespace implementation, that has plural handling for list arguments and converts camel case keys to dashed strings
+ */
+final class JsonRpcNamespace extends Namespace {
+
+    public JsonRpcNamespace(final Map<String, Object> attrs) {
+        super(attrs);
+    }
+
+    @Override
+    public <T> T get(String dest) {
+        final T value = super.get(dest);
+        if (value != null) {
+            return value;
+        }
+
+        final var camelCaseString = Util.dashSeparatedToCamelCaseString(dest);
+        return super.get(camelCaseString);
+    }
+
+    @Override
+    public <E> List<E> getList(final String dest) {
+        try {
+            final List<E> value = super.getList(dest);
+            if (value != null) {
+                return value;
+            }
+        } catch (ClassCastException e) {
+            return List.of(this.<E>get(dest));
+        }
+
+        return super.getList(dest + "s");
+    }
+}