picocli

## Class CommandLine.Model.UsageMessageSpec

- java.lang.Object
- - picocli.CommandLine.Model.UsageMessageSpec

Enclosing class:
  CommandLine.Model

    public static class CommandLine.Model.UsageMessageSpec
    extends Object

Models the usage help message specification and can be used to customize the usage help message.

This class provides two ways to customize the usage help message:

- Change the text of the predefined sections (this may also be done declaratively using the annotations)
- Add custom sections, or remove or re-order predefined sections

The pre-defined sections have getters and setters that return a String (or array of Strings). For example: `description()` and `description(String...)` or `header()` and `header(String...)`.

Changing the section order, or adding custom sections can be accomplished with `sectionKeys(List)` and `sectionMap(Map)`. This gives complete freedom on how a usage help message section is rendered, but it also means that the section renderer is responsible for all aspects of rendering the section, including layout and emitting ANSI escape codes. The `CommandLine.Help.TextTable` and `CommandLine.Help.Ansi.Text` classes, and the `CommandLine.Help.Ansi.string(String)` and `CommandLine.Help.Ansi.text(String)` methods may be useful.

The usage help message is created more or less like this:

     // CommandLine.usage(...) or CommandLine.getUsageMessage(...)
     Help.ColorScheme colorScheme = Help.defaultColorScheme(Help.Ansi.AUTO);
     Help help = getHelpFactory().create(getCommandSpec(), colorScheme)
     StringBuilder result = new StringBuilder();
     for (String key : getHelpSectionKeys()) {
         IHelpSectionRenderer renderer = getHelpSectionMap().get(key);
         if (renderer != null) { result.append(renderer.render(help)); }
     }
     // return or print result

Where the default help section map is constructed like this:

     // The default section renderers delegate to methods in Help for their implementation
     // (using Java 8 lambda notation for brevity):
     Map<String, IHelpSectionRenderer> sectionMap = new HashMap<>();
     sectionMap.put(SECTION_KEY_HEADER_HEADING,         help -> help.headerHeading());
     sectionMap.put(SECTION_KEY_HEADER,                 help -> help.header());
     sectionMap.put(SECTION_KEY_SYNOPSIS_HEADING,       help -> help.synopsisHeading());      //e.g. Usage:
     sectionMap.put(SECTION_KEY_SYNOPSIS,               help -> help.synopsis(help.synopsisHeadingLength())); //e.g. <cmd> [OPTIONS] <subcmd> [COMMAND-OPTIONS] [ARGUMENTS]
     sectionMap.put(SECTION_KEY_DESCRIPTION_HEADING,    help -> help.descriptionHeading());   //e.g. %nDescription:%n%n
     sectionMap.put(SECTION_KEY_DESCRIPTION,            help -> help.description());          //e.g. {"Converts foos to bars.", "Use options to control conversion mode."}
     sectionMap.put(SECTION_KEY_PARAMETER_LIST_HEADING, help -> help.parameterListHeading()); //e.g. %nPositional parameters:%n%n
     sectionMap.put(SECTION_KEY_PARAMETER_LIST,         help -> help.parameterList());        //e.g. [FILE...] the files to convert
     sectionMap.put(SECTION_KEY_OPTION_LIST_HEADING,    help -> help.optionListHeading());    //e.g. %nOptions:%n%n
     sectionMap.put(SECTION_KEY_OPTION_LIST,            help -> help.optionList());           //e.g. -h, --help   displays this help and exits
     sectionMap.put(SECTION_KEY_COMMAND_LIST_HEADING,   help -> help.commandListHeading());   //e.g. %nCommands:%n%n
     sectionMap.put(SECTION_KEY_COMMAND_LIST,           help -> help.commandList());          //e.g.    add       adds the frup to the frooble
     sectionMap.put(SECTION_KEY_EXIT_CODE_LIST_HEADING, help -> help.exitCodeListHeading());
     sectionMap.put(SECTION_KEY_EXIT_CODE_LIST,         help -> help.exitCodeList());
     sectionMap.put(SECTION_KEY_FOOTER_HEADING,         help -> help.footerHeading());
     sectionMap.put(SECTION_KEY_FOOTER,                 help -> help.footer());

Since:
  3.0

### Field Summary

Fields
`static int` `DEFAULT_USAGE_WIDTH` Constant holding the default usage message width: `80`.
`static String` `SECTION_KEY_COMMAND_LIST` Section key to control the section renderer for the Subcommand List section.
`static String` `SECTION_KEY_COMMAND_LIST_HEADING` Section key to control the section renderer for the Subcommand List Heading section.
`static String` `SECTION_KEY_DESCRIPTION` Section key to control the section renderer for the Description section.
`static String` `SECTION_KEY_DESCRIPTION_HEADING` Section key to control the section renderer for the Description Heading section.
`static String` `SECTION_KEY_EXIT_CODE_LIST` Section key to control the section renderer for the Exit Code List section.
`static String` `SECTION_KEY_EXIT_CODE_LIST_HEADING` Section key to control the section renderer for the Exit Code List Heading section.
`static String` `SECTION_KEY_FOOTER` Section key to control the section renderer for the Footer section.
`static String` `SECTION_KEY_FOOTER_HEADING` Section key to control the section renderer for the Footer Heading section.
`static String` `SECTION_KEY_HEADER` Section key to control the section renderer for the Header section.
`static String` `SECTION_KEY_HEADER_HEADING` Section key to control the section renderer for the Header Heading section.
`static String` `SECTION_KEY_OPTION_LIST` Section key to control the section renderer for the Option List section.
`static String` `SECTION_KEY_OPTION_LIST_HEADING` Section key to control the section renderer for the Option List Heading section.
`static String` `SECTION_KEY_PARAMETER_LIST` Section key to control the section renderer for the Parameter List section.
`static String` `SECTION_KEY_PARAMETER_LIST_HEADING` Section key to control the section renderer for the Parameter List Heading section.
`static String` `SECTION_KEY_SYNOPSIS` Section key to control the section renderer for the Synopsis section.
`static String` `SECTION_KEY_SYNOPSIS_HEADING` Section key to control the section renderer for the Synopsis Heading section.

### Constructor Summary

Constructors
Constructor and Description
`UsageMessageSpec()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `abbreviateSynopsis()` Returns whether the synopsis line(s) should show an abbreviated synopsis without detailed option names.
`CommandLine.Model.UsageMessageSpec` `abbreviateSynopsis(boolean newValue)` Sets whether the synopsis line(s) should show an abbreviated synopsis without detailed option names.
`boolean` `adjustLineBreaksForWideCJKCharacters()` Returns whether line breaks should take wide Chinese, Japanese and Korean characters into account for line-breaking purposes.
`CommandLine.Model.UsageMessageSpec` `adjustLineBreaksForWideCJKCharacters(boolean adjustForWideChars)` Sets whether line breaks should take wide Chinese, Japanese and Korean characters into account, and returns this UsageMessageSpec.
`String` `commandListHeading()` Returns the optional heading preceding the subcommand list.
`CommandLine.Model.UsageMessageSpec` `commandListHeading(String newValue)` Sets the optional heading preceding the subcommand list.
`String[]` `customSynopsis()` Returns the optional custom synopsis lines to use instead of the auto-generated synopsis.
`CommandLine.Model.UsageMessageSpec` `customSynopsis(String... customSynopsis)` Sets the optional custom synopsis lines to use instead of the auto-generated synopsis.
`String[]` `description()` Returns the optional text lines to use as the description of the help message, displayed between the synopsis and the options list.
`CommandLine.Model.UsageMessageSpec` `description(String... description)` Sets the optional text lines to use as the description of the help message, displayed between the synopsis and the options list.
`String` `descriptionHeading()` Returns the optional heading preceding the description section.
`CommandLine.Model.UsageMessageSpec` `descriptionHeading(String newValue)` Sets the heading preceding the description section.
`Map<String,String>` `exitCodeList()` Returns an unmodifiable map with values to be displayed in the exit codes section: keys are exit codes, values are descriptions.
`CommandLine.Model.UsageMessageSpec` `exitCodeList(Map<String,String> newValue)` Sets the values to be displayed in the exit codes section: keys are exit codes, values are descriptions.
`String` `exitCodeListHeading()` Returns the optional heading preceding the exit codes section, may contain `"%n"` line separators.
`CommandLine.Model.UsageMessageSpec` `exitCodeListHeading(String newValue)` Sets the optional heading preceding the exit codes section, may contain `"%n"` line separators.
`String[]` `footer()` Returns the optional footer text lines displayed at the bottom of the help message.
`CommandLine.Model.UsageMessageSpec` `footer(String... footer)` Sets the optional footer text lines displayed at the bottom of the help message.
`String` `footerHeading()` Returns the optional heading preceding the footer section.
`CommandLine.Model.UsageMessageSpec` `footerHeading(String newValue)` Sets the optional heading preceding the footer section.
`String[]` `header()` Returns the optional header lines displayed at the top of the help message.
`CommandLine.Model.UsageMessageSpec` `header(String... header)` Sets the optional header lines displayed at the top of the help message.
`String` `headerHeading()` Returns the optional heading preceding the header section.
`CommandLine.Model.UsageMessageSpec` `headerHeading(String headerHeading)` Sets the heading preceding the header section.
`CommandLine.IHelpFactory` `helpFactory()` Returns the `IHelpFactory` that is used to construct the usage help message.
`CommandLine.Model.UsageMessageSpec` `helpFactory(CommandLine.IHelpFactory helpFactory)` Sets a new `IHelpFactory` to customize the usage help message.
`boolean` `hidden()` Returns whether this command should be hidden from the usage help message of the parent command.
`CommandLine.Model.UsageMessageSpec` `hidden(boolean value)` Set the hidden flag on this command to control whether to show or hide it in the help usage text of the parent command.
`static Map<String,String>` `keyValuesMap(String... entries)` Creates and returns a `Map` that contains an entry for each specified String that is in `"key:value"` format.
`CommandLine.Model.Messages` `messages()` Returns the Messages for this usage help message specification, or `null`.
`CommandLine.Model.UsageMessageSpec` `messages(CommandLine.Model.Messages msgs)` Sets the Messages for this usageMessage specification, and returns this UsageMessageSpec.
`String` `optionListHeading()` Returns the optional heading preceding the options list.
`CommandLine.Model.UsageMessageSpec` `optionListHeading(String newValue)` Sets the heading preceding the options list.
`String` `parameterListHeading()` Returns the optional heading preceding the parameter list.
`CommandLine.Model.UsageMessageSpec` `parameterListHeading(String newValue)` Sets the optional heading preceding the parameter list.
`char` `requiredOptionMarker()` Returns the character used to prefix required options in the options list.
`CommandLine.Model.UsageMessageSpec` `requiredOptionMarker(char newValue)` Sets the character used to prefix required options in the options list.
`List<String>` `sectionKeys()` Returns the section keys in the order that the usage help message should render the sections.
`CommandLine.Model.UsageMessageSpec` `sectionKeys(List<String> keys)` Sets the section keys in the order that the usage help message should render the sections.
`Map<String,CommandLine.IHelpSectionRenderer>` `sectionMap()` Returns the map of section keys and renderers used to construct the usage help message.
`CommandLine.Model.UsageMessageSpec` `sectionMap(Map<String,CommandLine.IHelpSectionRenderer> map)` Sets the map of section keys and renderers used to construct the usage help message to a copy of the specified map.
`boolean` `showDefaultValues()` Returns whether the options list in the usage help message should show default values for all non-boolean options.
`CommandLine.Model.UsageMessageSpec` `showDefaultValues(boolean newValue)` Sets whether the options list in the usage help message should show default values for all non-boolean options.
`boolean` `sortOptions()` Returns whether the options list in the usage help message should be sorted alphabetically.
`CommandLine.Model.UsageMessageSpec` `sortOptions(boolean newValue)` Sets whether the options list in the usage help message should be sorted alphabetically.
`String` `synopsisHeading()` Returns the optional heading preceding the synopsis.
`CommandLine.Model.UsageMessageSpec` `synopsisHeading(String newValue)` Sets the optional heading preceding the synopsis.
`int` `width()` Returns the maximum usage help message width.
`CommandLine.Model.UsageMessageSpec` `width(int newValue)` Sets the maximum usage help message width to the specified value.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### SECTION_KEY_HEADER_HEADING

    public static final String SECTION_KEY_HEADER_HEADING

Section key to control the section renderer for the Header Heading section. The default renderer for this section calls `CommandLine.Help.headerHeading(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_HEADER

    public static final String SECTION_KEY_HEADER

Section key to control the section renderer for the Header section. The default renderer for this section calls `CommandLine.Help.header(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_SYNOPSIS_HEADING

    public static final String SECTION_KEY_SYNOPSIS_HEADING

Section key to control the section renderer for the Synopsis Heading section. The default renderer for this section calls `CommandLine.Help.synopsisHeading(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_SYNOPSIS

    public static final String SECTION_KEY_SYNOPSIS

Section key to control the section renderer for the Synopsis section. The default renderer for this section calls `CommandLine.Help.synopsis(int)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_DESCRIPTION_HEADING

    public static final String SECTION_KEY_DESCRIPTION_HEADING

Section key to control the section renderer for the Description Heading section. The default renderer for this section calls `CommandLine.Help.descriptionHeading(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_DESCRIPTION

    public static final String SECTION_KEY_DESCRIPTION

Section key to control the section renderer for the Description section. The default renderer for this section calls `CommandLine.Help.description(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_PARAMETER_LIST_HEADING

    public static final String SECTION_KEY_PARAMETER_LIST_HEADING

Section key to control the section renderer for the Parameter List Heading section. The default renderer for this section calls `CommandLine.Help.parameterListHeading(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_PARAMETER_LIST

    public static final String SECTION_KEY_PARAMETER_LIST

Section key to control the section renderer for the Parameter List section. The default renderer for this section calls `CommandLine.Help.parameterList()`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_OPTION_LIST_HEADING

    public static final String SECTION_KEY_OPTION_LIST_HEADING

Section key to control the section renderer for the Option List Heading section. The default renderer for this section calls `CommandLine.Help.optionListHeading(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_OPTION_LIST

    public static final String SECTION_KEY_OPTION_LIST

Section key to control the section renderer for the Option List section. The default renderer for this section calls `CommandLine.Help.optionList()`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_COMMAND_LIST_HEADING

    public static final String SECTION_KEY_COMMAND_LIST_HEADING

Section key to control the section renderer for the Subcommand List Heading section. The default renderer for this section calls `CommandLine.Help.commandListHeading(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_COMMAND_LIST

    public static final String SECTION_KEY_COMMAND_LIST

Section key to control the section renderer for the Subcommand List section. The default renderer for this section calls `CommandLine.Help.commandList()`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_EXIT_CODE_LIST_HEADING

    public static final String SECTION_KEY_EXIT_CODE_LIST_HEADING

Section key to control the section renderer for the Exit Code List Heading section. The default renderer for this section calls `CommandLine.Help.exitCodeListHeading(Object...)`.

Since:
  4.0
See Also:
  Constant Field Values

#### SECTION_KEY_EXIT_CODE_LIST

    public static final String SECTION_KEY_EXIT_CODE_LIST

Section key to control the section renderer for the Exit Code List section. The default renderer for this section calls `CommandLine.Help.exitCodeList()`.

Since:
  4.0
See Also:
  Constant Field Values

#### SECTION_KEY_FOOTER_HEADING

    public static final String SECTION_KEY_FOOTER_HEADING

Section key to control the section renderer for the Footer Heading section. The default renderer for this section calls `CommandLine.Help.footerHeading(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### SECTION_KEY_FOOTER

    public static final String SECTION_KEY_FOOTER

Section key to control the section renderer for the Footer section. The default renderer for this section calls `CommandLine.Help.footer(Object...)`.

Since:
  3.9
See Also:
  Constant Field Values

#### DEFAULT_USAGE_WIDTH

    public static final int DEFAULT_USAGE_WIDTH

Constant holding the default usage message width: `80`.

See Also:
  Constant Field Values

### Constructor Detail

#### UsageMessageSpec

    public UsageMessageSpec()

### Method Detail

#### width

    public CommandLine.Model.UsageMessageSpec width(int newValue)

Sets the maximum usage help message width to the specified value. Longer values are wrapped.

Parameters:
  `newValue` - the new maximum usage help message width. Must be 55 or greater.
Returns:
  this `UsageMessageSpec` for method chaining
Throws:
  `IllegalArgumentException` - if the specified width is less than 55

#### width

    public int width()

Returns the maximum usage help message width. Derived from system property `"picocli.usage.width"` if set, otherwise returns the value set via the `width(int)` method, or if not set, the default width.

Returns:
  the maximum usage help message width. Never returns less than 55.

#### sectionKeys

    public List<String> sectionKeys()

Returns the section keys in the order that the usage help message should render the sections. This ordering may be modified with the `sectionKeys setter`. The default keys are (in order):

0. `SECTION_KEY_HEADER_HEADING`
1. `SECTION_KEY_HEADER`
2. `SECTION_KEY_SYNOPSIS_HEADING`
3. `SECTION_KEY_SYNOPSIS`
4. `SECTION_KEY_DESCRIPTION_HEADING`
5. `SECTION_KEY_DESCRIPTION`
6. `SECTION_KEY_PARAMETER_LIST_HEADING`
7. `SECTION_KEY_PARAMETER_LIST`
8. `SECTION_KEY_OPTION_LIST_HEADING`
9. `SECTION_KEY_OPTION_LIST`
10. `SECTION_KEY_COMMAND_LIST_HEADING`
11. `SECTION_KEY_COMMAND_LIST`
12. `SECTION_KEY_EXIT_CODE_LIST_HEADING`
13. `SECTION_KEY_EXIT_CODE_LIST`
14. `SECTION_KEY_FOOTER_HEADING`
15. `SECTION_KEY_FOOTER`

Since:
  3.9

#### sectionKeys

    public CommandLine.Model.UsageMessageSpec sectionKeys(List<String> keys)

Sets the section keys in the order that the usage help message should render the sections.

Since:
  3.9
See Also:
  `sectionKeys`

#### sectionMap

    public Map<String,CommandLine.IHelpSectionRenderer> sectionMap()

Returns the map of section keys and renderers used to construct the usage help message. The usage help message can be customized by adding, replacing and removing section renderers from this map. Sections can be reordered with the `sectionKeys setter`. Sections that are either not in this map or not in the list returned by `sectionKeys` are omitted.

Since:
  3.9
See Also:
  `sectionKeys`

#### sectionMap

    public CommandLine.Model.UsageMessageSpec sectionMap(Map<String,CommandLine.IHelpSectionRenderer> map)

Sets the map of section keys and renderers used to construct the usage help message to a copy of the specified map.

Parameters:
  `map` - the mapping of section keys to their renderers, must be non-`null`.
Returns:
  this UsageMessageSpec for method chaining
Since:
  3.9
See Also:
  `sectionKeys`, `CommandLine.setHelpSectionMap(Map)`

#### helpFactory

    public CommandLine.IHelpFactory helpFactory()

Returns the `IHelpFactory` that is used to construct the usage help message.

Since:
  3.9
See Also:
  `CommandLine.setHelpFactory(IHelpFactory)`

#### helpFactory

    public CommandLine.Model.UsageMessageSpec helpFactory(CommandLine.IHelpFactory helpFactory)

Sets a new `IHelpFactory` to customize the usage help message.

Parameters:
  `helpFactory` - the new help factory. Must be non-`null`.
Returns:
  this `UsageMessageSpec` object, to allow method chaining

#### headerHeading

    public String headerHeading()

Returns the optional heading preceding the header section. Initialized from `CommandLine.Command.headerHeading()`, or `""` (empty string).

#### header

    public String[] header()

Returns the optional header lines displayed at the top of the help message. For subcommands, the first header line is displayed in the list of commands. Values are initialized from `CommandLine.Command.header()` if the `Command` annotation is present, otherwise this is an empty array and the help message has no header. Applications may programmatically set this field to create a custom help message.

#### synopsisHeading

    public String synopsisHeading()

Returns the optional heading preceding the synopsis. Initialized from `CommandLine.Command.synopsisHeading()`, `"Usage: "` by default.

#### abbreviateSynopsis

    public boolean abbreviateSynopsis()

Returns whether the synopsis line(s) should show an abbreviated synopsis without detailed option names.

#### customSynopsis

    public String[] customSynopsis()

Returns the optional custom synopsis lines to use instead of the auto-generated synopsis. Initialized from `CommandLine.Command.customSynopsis()` if the `Command` annotation is present, otherwise this is an empty array and the synopsis is generated. Applications may programmatically set this field to create a custom help message.

#### descriptionHeading

    public String descriptionHeading()

Returns the optional heading preceding the description section. Initialized from `CommandLine.Command.descriptionHeading()`, or null.

#### description

    public String[] description()

Returns the optional text lines to use as the description of the help message, displayed between the synopsis and the options list. Initialized from `CommandLine.Command.description()` if the `Command` annotation is present, otherwise this is an empty array and the help message has no description. Applications may programmatically set this field to create a custom help message.

#### parameterListHeading

    public String parameterListHeading()

Returns the optional heading preceding the parameter list. Initialized from `CommandLine.Command.parameterListHeading()`, or null.

#### optionListHeading

    public String optionListHeading()

Returns the optional heading preceding the options list. Initialized from `CommandLine.Command.optionListHeading()`, or null.

#### sortOptions

    public boolean sortOptions()

Returns whether the options list in the usage help message should be sorted alphabetically.

#### requiredOptionMarker

    public char requiredOptionMarker()

Returns the character used to prefix required options in the options list.

#### showDefaultValues

    public boolean showDefaultValues()

Returns whether the options list in the usage help message should show default values for all non-boolean options.

#### hidden

    public boolean hidden()

Returns whether this command should be hidden from the usage help message of the parent command.

Returns:
  `true` if this command should not appear in the usage help message of the parent command

#### commandListHeading

    public String commandListHeading()

Returns the optional heading preceding the subcommand list. Initialized from `CommandLine.Command.commandListHeading()`. `"Commands:%n"` by default.

#### exitCodeListHeading

    public String exitCodeListHeading()

Returns the optional heading preceding the exit codes section, may contain `"%n"` line separators. `""` (empty string) by default.

#### exitCodeList

    public Map<String,String> exitCodeList()

Returns an unmodifiable map with values to be displayed in the exit codes section: keys are exit codes, values are descriptions. Descriptions may contain `"%n"` line separators. Callers may be interested in the `keyValuesMap` method for creating a map from a list of `"key:value"` Strings.

This may be configured in a resource bundle by listing up multiple `"key:value"` pairs. For example:

     usage.exitCodeList.0 = 0:Successful program execution.
     usage.exitCodeList.1 = 64:Invalid input: an unknown option or invalid parameter was specified.
     usage.exitCodeList.2 = 70:Execution exception: an exception occurred while executing the business logic.

Returns:
  an unmodifiable map with values to be displayed in the exit codes section, or an empty map if no exit codes are registered.
Since:
  4.0
See Also:
  `keyValuesMap(String...)`

#### keyValuesMap

    public static Map<String,String> keyValuesMap(String... entries)

Creates and returns a `Map` that contains an entry for each specified String that is in `"key:value"` format.

Parameters:
  `entries` - the strings to process; values that are not in `"key:value"` format are ignored
Returns:
  a `Map` with an entry for each line, preserving the input order
Since:
  4.0

#### footerHeading

    public String footerHeading()

Returns the optional heading preceding the footer section. Initialized from `CommandLine.Command.footerHeading()`, or `""` (empty string).

#### footer

    public String[] footer()

Returns the optional footer text lines displayed at the bottom of the help message. Initialized from `CommandLine.Command.footer()` if the `Command` annotation is present, otherwise this is an empty array and the help message has no footer. Applications may programmatically set this field to create a custom help message.

#### headerHeading

    public CommandLine.Model.UsageMessageSpec headerHeading(String headerHeading)

Sets the heading preceding the header section. Initialized from `CommandLine.Command.headerHeading()`, or null.

Returns:
  this UsageMessageSpec for method chaining

#### header

    public CommandLine.Model.UsageMessageSpec header(String... header)

Sets the optional header lines displayed at the top of the help message. For subcommands, the first header line is displayed in the list of commands.

Returns:
  this UsageMessageSpec for method chaining

#### synopsisHeading

    public CommandLine.Model.UsageMessageSpec synopsisHeading(String newValue)

Sets the optional heading preceding the synopsis.

Returns:
  this UsageMessageSpec for method chaining

#### abbreviateSynopsis

    public CommandLine.Model.UsageMessageSpec abbreviateSynopsis(boolean newValue)

Sets whether the synopsis line(s) should show an abbreviated synopsis without detailed option names.

Returns:
  this UsageMessageSpec for method chaining

#### customSynopsis

    public CommandLine.Model.UsageMessageSpec customSynopsis(String... customSynopsis)

Sets the optional custom synopsis lines to use instead of the auto-generated synopsis.

Returns:
  this UsageMessageSpec for method chaining

#### descriptionHeading

    public CommandLine.Model.UsageMessageSpec descriptionHeading(String newValue)

Sets the heading preceding the description section.

Returns:
  this UsageMessageSpec for method chaining

#### description

    public CommandLine.Model.UsageMessageSpec description(String... description)

Sets the optional text lines to use as the description of the help message, displayed between the synopsis and the options list.

Returns:
  this UsageMessageSpec for method chaining

#### parameterListHeading

    public CommandLine.Model.UsageMessageSpec parameterListHeading(String newValue)

Sets the optional heading preceding the parameter list.

Returns:
  this UsageMessageSpec for method chaining

#### optionListHeading

    public CommandLine.Model.UsageMessageSpec optionListHeading(String newValue)

Sets the heading preceding the options list.

Returns:
  this UsageMessageSpec for method chaining

#### sortOptions

    public CommandLine.Model.UsageMessageSpec sortOptions(boolean newValue)

Sets whether the options list in the usage help message should be sorted alphabetically.

Returns:
  this UsageMessageSpec for method chaining

#### requiredOptionMarker

    public CommandLine.Model.UsageMessageSpec requiredOptionMarker(char newValue)

Sets the character used to prefix required options in the options list.

Returns:
  this UsageMessageSpec for method chaining

#### showDefaultValues

    public CommandLine.Model.UsageMessageSpec showDefaultValues(boolean newValue)

Sets whether the options list in the usage help message should show default values for all non-boolean options.

Returns:
  this UsageMessageSpec for method chaining

#### hidden

    public CommandLine.Model.UsageMessageSpec hidden(boolean value)

Set the hidden flag on this command to control whether to show or hide it in the help usage text of the parent command.

Parameters:
  `value` - enable or disable the hidden flag
Returns:
  this UsageMessageSpec for method chaining
See Also:
  `CommandLine.Command.hidden()`

#### commandListHeading

    public CommandLine.Model.UsageMessageSpec commandListHeading(String newValue)

Sets the optional heading preceding the subcommand list.

Returns:
  this UsageMessageSpec for method chaining

#### exitCodeListHeading

    public CommandLine.Model.UsageMessageSpec exitCodeListHeading(String newValue)

Sets the optional heading preceding the exit codes section, may contain `"%n"` line separators. `""` (empty string) by default.

Since:
  4.0

#### exitCodeList

    public CommandLine.Model.UsageMessageSpec exitCodeList(Map<String,String> newValue)

Sets the values to be displayed in the exit codes section: keys are exit codes, values are descriptions. Descriptions may contain `"%n"` line separators.

This may be configured in a resource bundle by listing up multiple `"key:value"` pairs. For example:

     usage.exitCodeList.0 = 0:Successful program execution.
     usage.exitCodeList.1 = 64:Invalid input: an unknown option or invalid parameter was specified.
     usage.exitCodeList.2 = 70:Execution exception: an exception occurred while executing the business logic.

Parameters:
  `newValue` - a map with values to be displayed in the exit codes section
Since:
  4.0
See Also:
  `keyValuesMap(String...)`

#### footerHeading

    public CommandLine.Model.UsageMessageSpec footerHeading(String newValue)

Sets the optional heading preceding the footer section.

Returns:
  this UsageMessageSpec for method chaining

#### footer

    public CommandLine.Model.UsageMessageSpec footer(String... footer)

Sets the optional footer text lines displayed at the bottom of the help message.

Returns:
  this UsageMessageSpec for method chaining

#### messages

    public CommandLine.Model.Messages messages()

Returns the Messages for this usage help message specification, or `null`.

Returns:
  the Messages object that encapsulates this command's resource bundle
Since:
  3.6

#### messages

    public CommandLine.Model.UsageMessageSpec messages(CommandLine.Model.Messages msgs)

Sets the Messages for this usageMessage specification, and returns this UsageMessageSpec.

Parameters:
  `msgs` - the new Messages value that encapsulates this command's resource bundle, may be `null`
Since:
  3.6

#### adjustLineBreaksForWideCJKCharacters

    public boolean adjustLineBreaksForWideCJKCharacters()

Returns whether line breaks should take wide Chinese, Japanese and Korean characters into account for line-breaking purposes.

Returns:
  true if wide Chinese, Japanese and Korean characters are counted as double the size of other characters for line-breaking purposes
Since:
  4.0

#### adjustLineBreaksForWideCJKCharacters

    public CommandLine.Model.UsageMessageSpec adjustLineBreaksForWideCJKCharacters(boolean adjustForWideChars)

Sets whether line breaks should take wide Chinese, Japanese and Korean characters into account, and returns this UsageMessageSpec.

Parameters:
  `adjustForWideChars` - if true, wide Chinese, Japanese and Korean characters are counted as double the size of other characters for line-breaking purposes
Since:
  4.0