Object
SmartArgs
Class for parsing command line arguments.
Key-value arguments (like "-k val") are sent to HANDLERS.
Key only arguments (like "-l") are sent to DEFAULT_HANDLER.
If default handler returns false we stop processing further arguments.
Example:
private Map<String, Consumer<String>> handlers = new HashMap<String, Consumer<String>>() {{
put("-k", val -> {...});
put("-e", expr -> {...});
put("-d", dir -> {...});
}};
private Function<String, Boolean> defaultHandler = arg -> {
switch (arg) {
case "-v": {
...
return true;
}
case "--no-wait": {
...
return true;
}}
throw new ArgumentParsingException();
};
SmartArgs args = new SmartArgs(handlers, defaultHandler);
args.parse(new String[] {"-k" , "value", "-v", "-e", "expr"});
You can use key-value arguments with positional arguments as well. To do this you just gather all values of default handler:
List<String> positionalArgs = new ArrayList<>();
new SmartArgs(handlers, arg -> positionalArgs.add(arg))
.parse(new String[] {"-k" , "value", "arg1", "arg2", "arg3"});
// all positional arguments now available in positionalArgs
-
Constructor Summary
-
Method Summary
-
Constructor Details
-
SmartArgs
-
-
Method Details
-
parse
Parse the args invoking corresponding handlers.- Throws:
ArgumentParsingException
- if value is not given for some key-value argument
-