diff options
author | Cedric Beust <cedric@beust.com> | 2017-02-12 13:01:39 -0800 |
---|---|---|
committer | Cedric Beust <cedric@beust.com> | 2017-02-12 13:01:39 -0800 |
commit | 6a719a1bc9317ce1ce14cfd2e3cf018ef90dfa6b (patch) | |
tree | fb5b284bee37c54966a75f4964459bcefc289213 /src/main/java/com/beust/jcommander/JCommander.java | |
parent | 9c652daf9012d9820f04e4326c63775d1650e075 (diff) | |
download | jcommander-6a719a1bc9317ce1ce14cfd2e3cf018ef90dfa6b.tar.gz |
Add order to @Parameter().
Diffstat (limited to 'src/main/java/com/beust/jcommander/JCommander.java')
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index fd14432..203c18e 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -139,7 +139,17 @@ public class JCommander { = new Comparator<ParameterDescription>() { @Override public int compare(ParameterDescription p0, ParameterDescription p1) { - return p0.getLongestName().compareTo(p1.getLongestName()); + Parameter a0 = p0.getParameterAnnotation(); + Parameter a1 = p1.getParameterAnnotation(); + if (a0.order() != -1 && a1.order() != -1) { + return Integer.compare(a0.order(), a1.order()); + } else if (a0.order() != -1) { + return -1; + } else if (a1.order() != -1) { + return 1; + } else { + return p0.getLongestName().compareTo(p1.getLongestName()); + } } }; private int columnSize = 79; |