summaryrefslogtreecommitdiff
path: root/src/main/java/com/beust/jcommander/JCommander.java
diff options
context:
space:
mode:
authorCedric Beust <cedric@beust.com>2017-02-12 13:01:39 -0800
committerCedric Beust <cedric@beust.com>2017-02-12 13:01:39 -0800
commit6a719a1bc9317ce1ce14cfd2e3cf018ef90dfa6b (patch)
treefb5b284bee37c54966a75f4964459bcefc289213 /src/main/java/com/beust/jcommander/JCommander.java
parent9c652daf9012d9820f04e4326c63775d1650e075 (diff)
downloadjcommander-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.java12
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;