diff options
Diffstat (limited to 'base/src/main/java/bjc/utils/cli/GenericCommandMode.java')
| -rw-r--r-- | base/src/main/java/bjc/utils/cli/GenericCommandMode.java | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/base/src/main/java/bjc/utils/cli/GenericCommandMode.java b/base/src/main/java/bjc/utils/cli/GenericCommandMode.java index 328bbee..3642137 100644 --- a/base/src/main/java/bjc/utils/cli/GenericCommandMode.java +++ b/base/src/main/java/bjc/utils/cli/GenericCommandMode.java @@ -5,7 +5,7 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import bjc.funcdata.FunctionalMap; -import bjc.funcdata.IMap; +import bjc.funcdata.MapEx; /** * A general command mode, with a customizable set of commands. @@ -18,12 +18,12 @@ import bjc.funcdata.IMap; */ public class GenericCommandMode implements CommandMode { /* Contains the commands this mode handles. */ - private final IMap<String, Command> commandHandlers; + private final MapEx<String, Command> commandHandlers; /* Commands to execute in every mode. */ - private final IMap<String, Command> defaultHandlers; + private final MapEx<String, Command> defaultHandlers; /* Contains help topics without an associated command */ - private final IMap<String, CommandHelp> helpTopics; + private final MapEx<String, CommandHelp> helpTopics; /* The action to execute upon encountering an unknown command */ private BiConsumer<String, String[]> unknownCommandHandler; @@ -55,12 +55,12 @@ public class GenericCommandMode implements CommandMode { throw new NullPointerException("Error output source must be non-null"); this.normalOutput = normalOutput; - this.errorOutput = errorOutput; + this.errorOutput = errorOutput; /* Initialize maps so that they sort in alphabetical order. */ commandHandlers = new FunctionalMap<>(new TreeMap<>()); defaultHandlers = new FunctionalMap<>(new TreeMap<>()); - helpTopics = new FunctionalMap<>(new TreeMap<>()); + helpTopics = new FunctionalMap<>(new TreeMap<>()); /* Setup default commands. */ setupDefaultCommands(); @@ -84,17 +84,16 @@ public class GenericCommandMode implements CommandMode { if (commandName == null) { throw new NullPointerException("Command name must not be null"); } else if (aliasName == null) { - String msg = "Alias name must not be null"; - throw new NullPointerException(msg); + throw new NullPointerException("Alias name must not be null"); } else if (!commandHandlers.containsKey(commandName) && !defaultHandlers.containsKey(commandName)) { - String msg = String.format("Cannot alias non-existant command '%s'", + String msg = String.format("Cannot alias non-existing command '%s'", commandName); throw new IllegalArgumentException(msg); } else if (commandHandlers.containsKey(aliasName) || defaultHandlers.containsKey(aliasName)) { String msg = String.format( - "Cannot bind alias '%s' to an already bound command.", aliasName); + "Cannot bind alias '%s' to an already used name.", aliasName); throw new IllegalArgumentException(msg); } else { /* The command that will be aliased. */ @@ -102,9 +101,9 @@ public class GenericCommandMode implements CommandMode { /* Get the alias. */ if (defaultHandlers.containsKey(commandName)) { - aliasedCommand = defaultHandlers.get(commandName).aliased(); + aliasedCommand = defaultHandlers.get(commandName).get().aliased(); } else { - aliasedCommand = commandHandlers.get(commandName).aliased(); + aliasedCommand = commandHandlers.get(commandName).get().aliased(); } commandHandlers.put(aliasName, aliasedCommand); @@ -262,16 +261,16 @@ public class GenericCommandMode implements CommandMode { private void doHelpCommand(final String commandName) { if (commandHandlers.containsKey(commandName)) { final String desc - = commandHandlers.get(commandName).getHelp().getDescription(); + = commandHandlers.get(commandName).get().getHelp().getDescription(); normalOutput.accept("\n" + desc); } else if (defaultHandlers.containsKey(commandName)) { final String desc - = defaultHandlers.get(commandName).getHelp().getDescription(); + = defaultHandlers.get(commandName).get().getHelp().getDescription(); normalOutput.accept("\n" + desc); } else if (helpTopics.containsKey(commandName)) { - normalOutput.accept("\n" + helpTopics.get(commandName).getDescription()); + normalOutput.accept("\n" + helpTopics.get(commandName).get().getDescription()); } else { String msg = String.format("ERROR: No help available for '%s'", commandName); @@ -371,9 +370,9 @@ public class GenericCommandMode implements CommandMode { normalOutput.accept("\n"); if (defaultHandlers.containsKey(command)) - return defaultHandlers.get(command).getHandler().handle(args); + return defaultHandlers.get(command).get().getHandler().handle(args); else if (commandHandlers.containsKey(command)) - return commandHandlers.get(command).getHandler().handle(args); + return commandHandlers.get(command).get().getHandler().handle(args); else { if (args != null) { String argString = String.join(", ", args); |
