diff options
| author | J08nY | 2017-11-23 01:32:41 +0100 |
|---|---|---|
| committer | J08nY | 2017-11-23 01:32:41 +0100 |
| commit | 0fdfe31112924f51ca503c0ec0fff62ec20403c1 (patch) | |
| tree | 35431fa7a6e96ce9ad8132eca3340048632699bf /src/cz/crcs/ectester/common/cli/TreeCommandLine.java | |
| parent | c668d220aa8a2505de701a57803040a7def291b0 (diff) | |
| download | ECTester-0fdfe31112924f51ca503c0ec0fff62ec20403c1.tar.gz ECTester-0fdfe31112924f51ca503c0ec0fff62ec20403c1.tar.zst ECTester-0fdfe31112924f51ca503c0ec0fff62ec20403c1.zip | |
Diffstat (limited to 'src/cz/crcs/ectester/common/cli/TreeCommandLine.java')
| -rw-r--r-- | src/cz/crcs/ectester/common/cli/TreeCommandLine.java | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/cz/crcs/ectester/common/cli/TreeCommandLine.java b/src/cz/crcs/ectester/common/cli/TreeCommandLine.java index 82d1e15..39607dc 100644 --- a/src/cz/crcs/ectester/common/cli/TreeCommandLine.java +++ b/src/cz/crcs/ectester/common/cli/TreeCommandLine.java @@ -3,6 +3,7 @@ package cz.crcs.ectester.common.cli; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.ParseException; +import sun.reflect.generics.tree.Tree; import java.util.Iterator; import java.util.List; @@ -55,11 +56,21 @@ public class TreeCommandLine extends CommandLine { return cli; } + public int getDepth() { + if (next == null) { + return 0; + } + return next.getDepth() + 1; + } + private <T> T getOption(String opt, BiFunction<CommandLine, String, T> getter, T defaultValue) { if (opt.contains(".")) { String[] parts = opt.split("\\.", 2); if (next != null && parts[0].equals(next.getName())) { - return getter.apply(next, parts[1]); + T result = getter.apply(next, parts[1]); + if (result != null) + return result; + return defaultValue; } return defaultValue; } @@ -138,11 +149,21 @@ public class TreeCommandLine extends CommandLine { return cli.getOptions(); } + public boolean hasArg(int index) { + if (next != null) { + return next.hasArg(index); + } + return Math.abs(index) < cli.getArgs().length; + } + public String getArg(int index) { - if (index < 0 || index >= cli.getArgs().length) { + if (next != null) { + return next.getArg(index); + } + if (index >= cli.getArgs().length) { return null; } - return cli.getArgs()[index]; + return index < 0 ? cli.getArgs()[cli.getArgs().length + index] : cli.getArgs()[index]; } @Override |
