[Japi-cvs] SF.net SVN: japi: [458] libs/argparser/trunk/src/net/sf/japi/io/args/ BasicCommand.java
Status: Beta
Brought to you by:
christianhujer
From: <chr...@us...> - 2007-06-29 19:56:54
|
Revision: 458 http://svn.sourceforge.net/japi/?rev=458&view=rev Author: christianhujer Date: 2007-06-29 12:56:52 -0700 (Fri, 29 Jun 2007) Log Message: ----------- Fix for #1745284 --help options list is not sorted Modified Paths: -------------- libs/argparser/trunk/src/net/sf/japi/io/args/BasicCommand.java Modified: libs/argparser/trunk/src/net/sf/japi/io/args/BasicCommand.java =================================================================== --- libs/argparser/trunk/src/net/sf/japi/io/args/BasicCommand.java 2007-06-29 18:27:44 UTC (rev 457) +++ libs/argparser/trunk/src/net/sf/japi/io/args/BasicCommand.java 2007-06-29 19:56:52 UTC (rev 458) @@ -26,6 +26,9 @@ import java.util.MissingResourceException; import java.util.ResourceBundle; import java.util.Set; +import java.util.Map; +import java.util.HashMap; +import java.util.TreeSet; import org.jetbrains.annotations.NotNull; /** @@ -93,12 +96,12 @@ maxLong = Math.max(maxLong, currentLong - ", ".length()); maxShort = Math.max(maxShort, currentShort - ", ".length()); } - final String formatString = "%-" + maxShort + "s%s%-" + maxLong + "s: %s%s%n"; + final String formatString = "%s: %s%s%n"; final Formatter format = new Formatter(System.err); format.format(getHelpHeader()); + final Map<String, Method> methodMap = new HashMap<String, Method>(); for (final Method optionMethod : optionMethods) { final Option option = optionMethod.getAnnotation(Option.class); - final OptionType optionType = option.type(); final String[] names = option.value(); final List<String> shortNames = new ArrayList<String>(); final List<String> longNames = new ArrayList<String>(); @@ -110,6 +113,13 @@ } } final String delim = shortNames.size() > 0 && longNames.size() > 0 ? ", " : " "; + final String options = String.format("%-" + maxShort + "s%s%-" + maxLong + "s", StringJoiner.join(", ", shortNames), delim, StringJoiner.join(", ", longNames)); + methodMap.put(options, optionMethod); + } + for (final String options : new TreeSet<String>(methodMap.keySet())) { + final Method optionMethod = methodMap.get(options); + final Option option = optionMethod.getAnnotation(Option.class); + final OptionType optionType = option.type(); String description; try { final String optionKey = option.key().equals("") ? optionMethod.getName() : option.key(); @@ -117,7 +127,8 @@ } catch (final MissingResourceException ignore) { description = ""; } - format.format(formatString, StringJoiner.join(", ", shortNames), delim, StringJoiner.join(", ", longNames), description, optionType.getDescription()); + format.format(formatString, options, description, optionType.getDescription()); + } format.format(getHelpFooter()); format.flush(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |