aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/common/cli/TreeParser.java
diff options
context:
space:
mode:
authorJ08nY2018-01-09 13:46:29 +0100
committerJ08nY2018-01-09 13:46:29 +0100
commit94e441b522069d3fed4b88a4823b91c1593bac68 (patch)
tree6b8ebc96c50b7a16acdc71c74a34daa7669187a9 /src/cz/crcs/ectester/common/cli/TreeParser.java
parentd19d8ad062a3c0053789eae5f7c9662399f781e0 (diff)
downloadECTester-94e441b522069d3fed4b88a4823b91c1593bac68.tar.gz
ECTester-94e441b522069d3fed4b88a4823b91c1593bac68.tar.zst
ECTester-94e441b522069d3fed4b88a4823b91c1593bac68.zip
Diffstat (limited to 'src/cz/crcs/ectester/common/cli/TreeParser.java')
-rw-r--r--src/cz/crcs/ectester/common/cli/TreeParser.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/common/cli/TreeParser.java b/src/cz/crcs/ectester/common/cli/TreeParser.java
index 77cce30..f1a1980 100644
--- a/src/cz/crcs/ectester/common/cli/TreeParser.java
+++ b/src/cz/crcs/ectester/common/cli/TreeParser.java
@@ -86,6 +86,7 @@ public class TreeParser implements CommandLineParser {
}
}
+ int maxArgs = args.size();
long requiredArgs = args.stream().filter(Argument::isRequired).count();
String reqArgs = String.join(" ", args.stream().filter(Argument::isRequired).map(Argument::getName).collect(Collectors.toList()));
@@ -99,6 +100,8 @@ public class TreeParser implements CommandLineParser {
if (lastCli.getArgs().length < requiredArgs) {
throw new MissingArgumentException("Not enough arguments: " + reqArgs);
+ } else if (lastCli.getArgs().length > maxArgs) {
+ throw new MissingArgumentException("Too many arguments.");
}
subTreeCli.setName(sub);
@@ -106,6 +109,8 @@ public class TreeParser implements CommandLineParser {
} else if (subCli != null) {
if (subCli.getArgs().length < requiredArgs) {
throw new MissingArgumentException("Not enough arguments: " + reqArgs);
+ } else if (subCli.getArgs().length > maxArgs) {
+ throw new MissingArgumentException("Too many arguments.");
}
TreeCommandLine subTreeCli = new TreeCommandLine(sub, subCli, null);
@@ -113,7 +118,10 @@ public class TreeParser implements CommandLineParser {
} else {
if (cliArgs.length < requiredArgs) {
throw new MissingArgumentException("Not enough arguments: " + reqArgs);
+ } else if (cliArgs.length > maxArgs) {
+ throw new MissingArgumentException("Too many arguments.");
}
+
return new TreeCommandLine(cli, null);
}
}