From: AsamK Date: Mon, 8 Nov 2021 13:57:38 +0000 (+0100) Subject: Extract JsonRpcNamespace X-Git-Tag: v0.10.0~74 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/b81a83eec501b8f37b3063744dfff9d67f8b2600 Extract JsonRpcNamespace --- diff --git a/src/main/java/org/asamk/signal/commands/JsonRpcLocalCommand.java b/src/main/java/org/asamk/signal/commands/JsonRpcLocalCommand.java index ccf32771..653747ad 100644 --- a/src/main/java/org/asamk/signal/commands/JsonRpcLocalCommand.java +++ b/src/main/java/org/asamk/signal/commands/JsonRpcLocalCommand.java @@ -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> default List 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 attrs) { - super(attrs); - } - - @Override - public 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 List getList(final String dest) { - try { - final List value = super.getList(dest); - if (value != null) { - return value; - } - } catch (ClassCastException e) { - return List.of(this.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 index 00000000..8f606897 --- /dev/null +++ b/src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java @@ -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 attrs) { + super(attrs); + } + + @Override + public 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 List getList(final String dest) { + try { + final List value = super.getList(dest); + if (value != null) { + return value; + } + } catch (ClassCastException e) { + return List.of(this.get(dest)); + } + + return super.getList(dest + "s"); + } +}