Class HelpFormatter
java.lang.Object
tripleo.vendor.org_apache_commons_cli.HelpFormatter
A formatter of help messages for command line options.
Example:
Options options = new Options();
options.addOption(OptionBuilder.withLongOpt("file").withDescription("The file to be processed").hasArg().withArgName("FILE").isRequired().create('f'));
options.addOption(OptionBuilder.withLongOpt("version").withDescription("Print the version of the application").create('v'));
options.addOption(OptionBuilder.withLongOpt("help").create('h'));
String header = "Do something useful with an input file\n\n";
String footer = "\nPlease report issues at http://example.com/issues";
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("myapp", header, options, footer, true);
This produces the following output:
usage: myapp -f <FILE> [-h] [-v] Do something useful with an input file -f,--file <FILE> The file to be processed -h,--help -v,--version Print the version of the application Please report issues at http://example.com/issues
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringDefault name for an argumentstatic final intnumber of space characters to be prefixed to each description linestatic final intDefault padding to the left of each linestatic final StringDefault prefix for long Optionstatic final Stringdefault separator displayed between a long Option and its valuestatic final StringDefault prefix for shortOptsstatic final StringThe string to display at the beginning of the usage statementstatic final intDefault number of characters per lineDeprecated.Scope will be made private for next major version - use get/setArgName methods instead.intDeprecated.Scope will be made private for next major version - use get/setDescPadding methods instead.intDeprecated.Scope will be made private for next major version - use get/setLeftPadding methods instead.Deprecated.Scope will be made private for next major version - use get/setLongOptPrefix methods instead.Deprecated.Scope will be made private for next major version - use get/setNewLine methods instead.Deprecated.Scope will be made private for next major version - use get/setOptPrefix methods instead.Deprecated.Scope will be made private for next major version - use get/setSyntaxPrefix methods instead.intDeprecated.Scope will be made private for next major version - use get/setWidth methods instead.protected Comparator<Option>Comparator used to sort the options when they output in help text -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected @NotNull StringcreatePadding(int len) Return a String of padding of lengthlen.protected intfindWrapPos(@NotNull String text, int width, int startPos) Finds the next text wrap position afterstartPosfor the text intextwith the column widthwidth.Gets the 'argName'.intGets the 'descPadding'.intGets the 'leftPadding'.Gets the 'longOptPrefix'.Gets the separator displayed between a long option and its value.Gets the 'newLine'.Comparator used to sort the options when they output in help text.Gets the 'optPrefix'.Gets the 'syntaxPrefix'.intgetWidth()Gets the 'width'.voidprintHelp(int width, @NotNull String cmdLineSyntax, String header, @NotNull Options options, String footer) Print the help foroptionswith the specified command line syntax.voidprintHelp(int width, @NotNull String cmdLineSyntax, String header, @NotNull Options options, String footer, boolean autoUsage) Print the help foroptionswith the specified command line syntax.voidprintHelp(@NotNull PrintWriter pw, int width, @NotNull String cmdLineSyntax, @Nullable String header, @NotNull Options options, int leftPad, int descPad, @Nullable String footer, boolean autoUsage) Print the help foroptionswith the specified command line syntax.voidprintHelp(@NotNull PrintWriter pw, int width, @NotNull String cmdLineSyntax, String header, @NotNull Options options, int leftPad, int descPad, String footer) Print the help foroptionswith the specified command line syntax.voidPrint the help foroptionswith the specified command line syntax.voidPrint the help foroptionswith the specified command line syntax.voidPrint the help foroptionswith the specified command line syntax.voidprintHelp(@NotNull String cmdLineSyntax, String header, @NotNull Options options, String footer, boolean autoUsage) Print the help foroptionswith the specified command line syntax.voidprintOptions(@NotNull PrintWriter pw, int width, @NotNull Options options, int leftPad, int descPad) Print the help for the specified Options to the specified writer, using the specified width, left padding and description padding.voidprintUsage(@NotNull PrintWriter pw, int width, @NotNull String cmdLineSyntax) Print the cmdLineSyntax to the specified writer, using the specified width.voidprintUsage(@NotNull PrintWriter pw, int width, String app, @NotNull Options options) Prints the usage statement for the specified application.voidprintWrapped(@NotNull PrintWriter pw, int width, int nextLineTabStop, @NotNull String text) Print the specified text to the specified PrintWriter.voidprintWrapped(@NotNull PrintWriter pw, int width, @NotNull String text) Print the specified text to the specified PrintWriter.protected StringBufferrenderOptions(@NotNull StringBuffer sb, int width, @NotNull Options options, int leftPad, int descPad) Render the specified Options and return the rendered Options in a StringBuffer.protected @NotNull StringBufferrenderWrappedText(@NotNull StringBuffer sb, int width, int nextLineTabStop, @NotNull String text) Render the specified text and return the rendered Options in a StringBuffer.protected @Nullable StringRemove the trailing whitespace from the specified String.voidsetArgName(String name) Sets the 'argName'.voidsetDescPadding(int padding) Sets the 'descPadding'.voidsetLeftPadding(int padding) Sets the 'leftPadding'.voidsetLongOptPrefix(String prefix) Sets the 'longOptPrefix'.voidsetLongOptSeparator(String longOptSeparator) Set the separator displayed between a long option and its value.voidsetNewLine(String newline) Sets the 'newLine'.voidsetOptionComparator(Comparator<Option> comparator) Set the comparator used to sort the options when they output in help text.voidsetOptPrefix(String prefix) Sets the 'optPrefix'.voidsetSyntaxPrefix(String prefix) Sets the 'syntaxPrefix'.voidsetWidth(int width) Sets the 'width'.
-
Field Details
-
DEFAULT_WIDTH
public static final int DEFAULT_WIDTHDefault number of characters per line- See Also:
-
DEFAULT_LEFT_PAD
public static final int DEFAULT_LEFT_PADDefault padding to the left of each line- See Also:
-
DEFAULT_DESC_PAD
public static final int DEFAULT_DESC_PADnumber of space characters to be prefixed to each description line- See Also:
-
DEFAULT_SYNTAX_PREFIX
The string to display at the beginning of the usage statement- See Also:
-
DEFAULT_OPT_PREFIX
Default prefix for shortOpts- See Also:
-
DEFAULT_LONG_OPT_PREFIX
Default prefix for long Option- See Also:
-
DEFAULT_LONG_OPT_SEPARATOR
default separator displayed between a long Option and its value- Since:
- 1.3
- See Also:
-
DEFAULT_ARG_NAME
Default name for an argument- See Also:
-
defaultWidth
Deprecated.Scope will be made private for next major version - use get/setWidth methods instead.number of characters per line -
defaultLeftPad
Deprecated.Scope will be made private for next major version - use get/setLeftPadding methods instead.amount of padding to the left of each line -
defaultDescPad
Deprecated.Scope will be made private for next major version - use get/setDescPadding methods instead.the number of characters of padding to be prefixed to each description line -
defaultSyntaxPrefix
Deprecated.Scope will be made private for next major version - use get/setSyntaxPrefix methods instead.the string to display at the beginning of the usage statement -
defaultNewLine
Deprecated.Scope will be made private for next major version - use get/setNewLine methods instead.the new line string -
defaultOptPrefix
Deprecated.Scope will be made private for next major version - use get/setOptPrefix methods instead.the shortOpt prefix -
defaultLongOptPrefix
Deprecated.Scope will be made private for next major version - use get/setLongOptPrefix methods instead.the long Opt prefix -
defaultArgName
Deprecated.Scope will be made private for next major version - use get/setArgName methods instead.the name of the argument -
optionComparator
Comparator used to sort the options when they output in help textDefaults to case-insensitive alphabetical sorting by option key
-
-
Constructor Details
-
HelpFormatter
public HelpFormatter()
-
-
Method Details
-
createPadding
Return a String of padding of lengthlen.- Parameters:
len- The length of the String of padding to create.- Returns:
- The String of padding
-
findWrapPos
Finds the next text wrap position afterstartPosfor the text intextwith the column widthwidth. The wrap point is the last position before startPos+width having a whitespace character (space, \n, \r). If there is no whitespace character before startPos+width, it will return startPos+width.- Parameters:
text- The text being searched for the wrap positionwidth- width of the wrapped textstartPos- position from which to start the lookup whitespace character- Returns:
- position on which the text must be wrapped or -1 if the wrap position is at the end of the text
-
getArgName
Gets the 'argName'.- Returns:
- the 'argName'
-
setArgName
Sets the 'argName'.- Parameters:
name- the new value of 'argName'
-
getDescPadding
public int getDescPadding()Gets the 'descPadding'.- Returns:
- the 'descPadding'
-
setDescPadding
public void setDescPadding(int padding) Sets the 'descPadding'.- Parameters:
padding- the new value of 'descPadding'
-
getLeftPadding
public int getLeftPadding()Gets the 'leftPadding'.- Returns:
- the 'leftPadding'
-
setLeftPadding
public void setLeftPadding(int padding) Sets the 'leftPadding'.- Parameters:
padding- the new value of 'leftPadding'
-
getLongOptPrefix
Gets the 'longOptPrefix'.- Returns:
- the 'longOptPrefix'
-
setLongOptPrefix
Sets the 'longOptPrefix'.- Parameters:
prefix- the new value of 'longOptPrefix'
-
getLongOptSeparator
Gets the separator displayed between a long option and its value.- Returns:
- the separator
- Since:
- 1.3
-
setLongOptSeparator
Set the separator displayed between a long option and its value. Ensure that the separator specified is supported by the parser used, typically ' ' or '='.- Parameters:
longOptSeparator- the separator, typically ' ' or '='.- Since:
- 1.3
-
getNewLine
Gets the 'newLine'.- Returns:
- the 'newLine'
-
setNewLine
Sets the 'newLine'.- Parameters:
newline- the new value of 'newLine'
-
getOptionComparator
Comparator used to sort the options when they output in help text. Defaults to case-insensitive alphabetical sorting by option key.- Returns:
- the
Comparatorcurrently in use to sort the options - Since:
- 1.2
-
setOptionComparator
Set the comparator used to sort the options when they output in help text. Passing in a null comparator will keep the options in the order they were declared.- Parameters:
comparator- theComparatorto use for sorting the options- Since:
- 1.2
-
getOptPrefix
Gets the 'optPrefix'.- Returns:
- the 'optPrefix'
-
setOptPrefix
Sets the 'optPrefix'.- Parameters:
prefix- the new value of 'optPrefix'
-
getSyntaxPrefix
Gets the 'syntaxPrefix'.- Returns:
- the 'syntaxPrefix'
-
setSyntaxPrefix
Sets the 'syntaxPrefix'.- Parameters:
prefix- the new value of 'syntaxPrefix'
-
getWidth
public int getWidth()Gets the 'width'.- Returns:
- the 'width'
-
setWidth
public void setWidth(int width) Sets the 'width'.- Parameters:
width- the new value of 'width'
-
printHelp
public void printHelp(int width, @NotNull @NotNull String cmdLineSyntax, String header, @NotNull @NotNull Options options, String footer) Print the help foroptionswith the specified command line syntax. This method prints help information to System.out.- Parameters:
width- the number of characters to be displayed on each linecmdLineSyntax- the syntax for this applicationheader- the banner to display at the beginning of the helpoptions- the Options instancefooter- the banner to display at the end of the help
-
printHelp
public void printHelp(int width, @NotNull @NotNull String cmdLineSyntax, String header, @NotNull @NotNull Options options, String footer, boolean autoUsage) Print the help foroptionswith the specified command line syntax. This method prints help information to System.out.- Parameters:
width- the number of characters to be displayed on each linecmdLineSyntax- the syntax for this applicationheader- the banner to display at the beginning of the helpoptions- the Options instancefooter- the banner to display at the end of the helpautoUsage- whether to print an automatically generated usage statement
-
printHelp
public void printHelp(@NotNull @NotNull PrintWriter pw, int width, @NotNull @NotNull String cmdLineSyntax, String header, @NotNull @NotNull Options options, int leftPad, int descPad, String footer) Print the help foroptionswith the specified command line syntax.- Parameters:
pw- the writer to which the help will be writtenwidth- the number of characters to be displayed on each linecmdLineSyntax- the syntax for this applicationheader- the banner to display at the beginning of the helpoptions- the Options instanceleftPad- the number of characters of padding to be prefixed to each linedescPad- the number of characters of padding to be prefixed to each description linefooter- the banner to display at the end of the help- Throws:
IllegalStateException- if there is no room to print a line
-
printHelp
public void printHelp(@NotNull @NotNull PrintWriter pw, int width, @NotNull @NotNull String cmdLineSyntax, @Nullable @Nullable String header, @NotNull @NotNull Options options, int leftPad, int descPad, @Nullable @Nullable String footer, boolean autoUsage) Print the help foroptionswith the specified command line syntax.- Parameters:
pw- the writer to which the help will be writtenwidth- the number of characters to be displayed on each linecmdLineSyntax- the syntax for this applicationheader- the banner to display at the beginning of the helpoptions- the Options instanceleftPad- the number of characters of padding to be prefixed to each linedescPad- the number of characters of padding to be prefixed to each description linefooter- the banner to display at the end of the helpautoUsage- whether to print an automatically generated usage statement- Throws:
IllegalStateException- if there is no room to print a line
-
printHelp
Print the help foroptionswith the specified command line syntax. This method prints help information to System.out.- Parameters:
cmdLineSyntax- the syntax for this applicationoptions- the Options instance
-
printHelp
public void printHelp(@NotNull @NotNull String cmdLineSyntax, @NotNull @NotNull Options options, boolean autoUsage) Print the help foroptionswith the specified command line syntax. This method prints help information to System.out.- Parameters:
cmdLineSyntax- the syntax for this applicationoptions- the Options instanceautoUsage- whether to print an automatically generated usage statement
-
printHelp
public void printHelp(@NotNull @NotNull String cmdLineSyntax, String header, @NotNull @NotNull Options options, String footer) Print the help foroptionswith the specified command line syntax. This method prints help information to System.out.- Parameters:
cmdLineSyntax- the syntax for this applicationheader- the banner to display at the beginning of the helpoptions- the Options instancefooter- the banner to display at the end of the help
-
printHelp
public void printHelp(@NotNull @NotNull String cmdLineSyntax, String header, @NotNull @NotNull Options options, String footer, boolean autoUsage) Print the help foroptionswith the specified command line syntax. This method prints help information to System.out.- Parameters:
cmdLineSyntax- the syntax for this applicationheader- the banner to display at the beginning of the helpoptions- the Options instancefooter- the banner to display at the end of the helpautoUsage- whether to print an automatically generated usage statement
-
printOptions
public void printOptions(@NotNull @NotNull PrintWriter pw, int width, @NotNull @NotNull Options options, int leftPad, int descPad) Print the help for the specified Options to the specified writer, using the specified width, left padding and description padding.- Parameters:
pw- The printWriter to write the help towidth- The number of characters to display per lineoptions- The command line OptionsleftPad- the number of characters of padding to be prefixed to each linedescPad- the number of characters of padding to be prefixed to each description line
-
printUsage
public void printUsage(@NotNull @NotNull PrintWriter pw, int width, @NotNull @NotNull String cmdLineSyntax) Print the cmdLineSyntax to the specified writer, using the specified width.- Parameters:
pw- The printWriter to write the help towidth- The number of characters per line for the usage statement.cmdLineSyntax- The usage statement.
-
printUsage
public void printUsage(@NotNull @NotNull PrintWriter pw, int width, String app, @NotNull @NotNull Options options) Prints the usage statement for the specified application.- Parameters:
pw- The PrintWriter to print the usage statementwidth- The number of characters to display per lineapp- The application nameoptions- The command line Options
-
printWrapped
public void printWrapped(@NotNull @NotNull PrintWriter pw, int width, int nextLineTabStop, @NotNull @NotNull String text) Print the specified text to the specified PrintWriter.- Parameters:
pw- The printWriter to write the help towidth- The number of characters to display per linenextLineTabStop- The position on the next line for the first tab.text- The text to be written to the PrintWriter
-
printWrapped
public void printWrapped(@NotNull @NotNull PrintWriter pw, int width, @NotNull @NotNull String text) Print the specified text to the specified PrintWriter.- Parameters:
pw- The printWriter to write the help towidth- The number of characters to display per linetext- The text to be written to the PrintWriter
-
renderOptions
protected StringBuffer renderOptions(@NotNull @NotNull StringBuffer sb, int width, @NotNull @NotNull Options options, int leftPad, int descPad) Render the specified Options and return the rendered Options in a StringBuffer.- Parameters:
sb- The StringBuffer to place the rendered Options into.width- The number of characters to display per lineoptions- The command line OptionsleftPad- the number of characters of padding to be prefixed to each linedescPad- the number of characters of padding to be prefixed to each description line- Returns:
- the StringBuffer with the rendered Options contents.
-
renderWrappedText
@NotNull protected @NotNull StringBuffer renderWrappedText(@NotNull @NotNull StringBuffer sb, int width, int nextLineTabStop, @NotNull @NotNull String text) Render the specified text and return the rendered Options in a StringBuffer.- Parameters:
sb- The StringBuffer to place the rendered text into.width- The number of characters to display per linenextLineTabStop- The position on the next line for the first tab.text- The text to be rendered.- Returns:
- the StringBuffer with the rendered Options contents.
-
rtrim
Remove the trailing whitespace from the specified String.- Parameters:
s- The String to remove the trailing padding from.- Returns:
- The String of without the trailing padding
-