# Class OptionFormatter

java.lang.Object
org.apache.commons.cli.help.OptionFormatter

public final class OptionFormatter extends Object
The definition of how to display Option attributes.

Since:
  1.10.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `OptionFormatter.Builder`
  Builds instances of `OptionFormatter`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Function<Option,String>`
  `COMPLEX_DEPRECATED_FORMAT`
  A function to display a deprecated option with a "Deprecated" prefix that displays all deprecation information.
  `static final String`
  `DEFAULT_ARG_NAME`
  The default argument name: "arg".
  `static final String`
  `DEFAULT_LONG_OPT_PREFIX`
  Default prefix for long options: "--".
  `static final String`
  `DEFAULT_OPT_ARG_SEPARATOR`
  The default separator between the opt and/or longOpt and the argument name: " ".
  `static final String`
  `DEFAULT_OPT_PREFIX`
  Default prefix for short options: "-".
  `static final String`
  `DEFAULT_OPT_SEPARATOR`
  The default separator between options: ", ".
  `static final String`
  `DEFAULT_SYNTAX_PREFIX`
  The string to display at the beginning of the usage statement: "usage: ".
  `static final Function<Option,String>`
  `NO_DEPRECATED_FORMAT`
  A function to display a deprecated option with the "[Deprecated]" prefix.
  `static final Function<Option,String>`
  `SIMPLE_DEPRECATED_FORMAT`
  A function to display a deprecated option with the "[Deprecated]" prefix.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static OptionFormatter.Builder`
  `builder()`
  Creates a new builder.
  `static OptionFormatter`
  `from(Option option)`
  Construct the `OptionFormatter` from an `Option` using the default `OptionFormatter.Builder`.
  `String`
  `getArgName()`
  Gets the argument name wrapped in the argument name delimiters.
  `String`
  `getBothOpt()`
  Gets both options separated by the specified option separator.
  `String`
  `getDescription()`
  Gets the description for the option.
  `String`
  `getLongOpt()`
  Gets the long Opt from the @{link Option} with the associate prefix.
  `String`
  `getOpt()`
  Gets the Opt from the @{link Option} with the associate prefix.
  `String`
  `getSince()`
  Gets the "since" value from the Option.
  `boolean`
  `isRequired()`
  Gets the required flag from the enclosed `Option`.
  `String`
  `toOptional(String text)`
  Wraps the provided text in the optional delimiters.
  `String`
  `toSyntaxOption()`
  Gets the syntax format for this option.
  `String`
  `toSyntaxOption(boolean isRequired)`
  Gets the syntax format for this option.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### DEFAULT_ARG_NAME

    public static final String DEFAULT_ARG_NAME
    The default argument name: "arg".
    See Also:
      - Constant Field Values

  - ### SIMPLE_DEPRECATED_FORMAT

    public static final Function<Option,String> SIMPLE_DEPRECATED_FORMAT
    A function to display a deprecated option with the "[Deprecated]" prefix.

  - ### COMPLEX_DEPRECATED_FORMAT

    public static final Function<Option,String> COMPLEX_DEPRECATED_FORMAT
    A function to display a deprecated option with a "Deprecated" prefix that displays all deprecation information.

  - ### NO_DEPRECATED_FORMAT

    public static final Function<Option,String> NO_DEPRECATED_FORMAT
    A function to display a deprecated option with the "[Deprecated]" prefix.

  - ### DEFAULT_SYNTAX_PREFIX

    public static final String DEFAULT_SYNTAX_PREFIX
    The string to display at the beginning of the usage statement: "usage: ".
    See Also:
      - Constant Field Values

  - ### DEFAULT_OPT_PREFIX

    public static final String DEFAULT_OPT_PREFIX
    Default prefix for short options: "-".
    See Also:
      - Constant Field Values

  - ### DEFAULT_LONG_OPT_PREFIX

    public static final String DEFAULT_LONG_OPT_PREFIX
    Default prefix for long options: "--".
    See Also:
      - Constant Field Values

  - ### DEFAULT_OPT_SEPARATOR

    public static final String DEFAULT_OPT_SEPARATOR
    The default separator between options: ", ".
    See Also:
      - Constant Field Values

  - ### DEFAULT_OPT_ARG_SEPARATOR

    public static final String DEFAULT_OPT_ARG_SEPARATOR
    The default separator between the opt and/or longOpt and the argument name: " ".
    See Also:
      - Constant Field Values

- ## Method Details

  - ### builder

    public static OptionFormatter.Builder builder()
    Creates a new builder.
    Returns:
      a new builder.

  - ### from

    public static OptionFormatter from(Option option)
    Construct the `OptionFormatter` from an `Option` using the default `OptionFormatter.Builder`.
    Parameters:
      `option` - the option to format.
    Returns:
      an OptionFormatter for the specified @{code option}.

  - ### getArgName

    public String getArgName()
    Gets the argument name wrapped in the argument name delimiters.
    - If option has no arguments an empty string is returned
    - If the argument name is not set the default argument name is used.
    Returns:
      The argument name wrapped in the argument name delimiters or an empty string.

  - ### getBothOpt

    public String getBothOpt()
    Gets both options separated by the specified option separator. Correctly handles the case where one option is not specified.
    Returns:
      The one or both of the short and/or long Opt with the associate prefixes.

  - ### getDescription

    public String getDescription()
    Gets the description for the option. This will include any deprecation notices if the deprecated format function has been set.
    Returns:
      The Description from the option or an empty string is no description was provided and the option is not deprecated.

  - ### getLongOpt

    public String getLongOpt()
    Gets the long Opt from the @{link Option} with the associate prefix.
    Returns:
      The long Opt from the @{link Option} with the associate prefix or an empty string.

  - ### getOpt

    public String getOpt()
    Gets the Opt from the @{link Option} with the associate prefix.
    Returns:
      The Opt from the @{link Option} with the associate prefix or an empty string.

  - ### getSince

    public String getSince()
    Gets the "since" value from the Option.
    Returns:
      The since valeu from the option or "--" if no since value was set.

  - ### isRequired

    public boolean isRequired()
    Gets the required flag from the enclosed `Option`.
    Returns:
      The required flag from the enclosed `Option`.

  - ### toOptional

    public String toOptional(String text)
    Wraps the provided text in the optional delimiters.
    Parameters:
      `text` - the text to wrap.
    Returns:
      The text wrapped in the optional delimiters or an eppty string of the text is null or an empty string.

  - ### toSyntaxOption

    public String toSyntaxOption()
    Gets the syntax format for this option.
    Returns:
      the syntax format for this option as specified by the syntaxFormatFunction.

  - ### toSyntaxOption

    public String toSyntaxOption(boolean isRequired)
    Gets the syntax format for this option.
    Parameters:
      `isRequired` - if `true` the options is printed as a required option, otherwise it is optional.
    Returns:
      the syntax format for this option as specified by the syntaxFormatFunction.