Options
Date: 2017-04-22

org.apache.commons.cli

## Class Options

- java.lang.Object
- - org.apache.commons.cli.Options

- All Implemented Interfaces:
    java.io.Serializable

      public class Options
      extends java.lang.Object
      implements java.io.Serializable

  Main entry-point into the library.

  Options represents a collection of `Option` objects, which describe the possible options for a command-line.

  It may flexibly parse long and short options, with or without values. Additionally, it may parse only a portion of a commandline, allowing for flexible multi-stage parsing.

  See Also:
    `CommandLine`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Options()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Options` | `addOption(Option opt)` Adds an option instance
    `Options` | `addOption(java.lang.String opt, boolean hasArg, java.lang.String description)` Add an option that only contains a short-name.
    `Options` | `addOption(java.lang.String opt, java.lang.String description)` Add an option that only contains a short name.
    `Options` | `addOption(java.lang.String opt, java.lang.String longOpt, boolean hasArg, java.lang.String description)` Add an option that contains a short-name and a long-name.
    `Options` | `addOptionGroup(OptionGroup group)` Add the specified option group.
    `Options` | `addRequiredOption(java.lang.String opt, java.lang.String longOpt, boolean hasArg, java.lang.String description)` Add an option that contains a short-name and a long-name.
    `java.util.List<java.lang.String>` | `getMatchingOptions(java.lang.String opt)` Returns the options with a long name starting with the name specified.
    `Option` | `getOption(java.lang.String opt)` Retrieve the `Option` matching the long or short name specified.
    `OptionGroup` | `getOptionGroup(Option opt)` Returns the OptionGroup the `opt` belongs to.
    `java.util.Collection<Option>` | `getOptions()` Retrieve a read-only list of options in this set
    `java.util.List` | `getRequiredOptions()` Returns the required options.
    `boolean` | `hasLongOption(java.lang.String opt)` Returns whether the named `Option` is a member of this `Options`.
    `boolean` | `hasOption(java.lang.String opt)` Returns whether the named `Option` is a member of this `Options`.
    `boolean` | `hasShortOption(java.lang.String opt)` Returns whether the named `Option` is a member of this `Options`.
    `java.lang.String` | `toString()` Dump state, suitable for debugging.

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

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

- - ### Constructor Detail

    - #### Options

          public Options()

  - ### Method Detail

    - #### addOptionGroup

          public Options addOptionGroup(OptionGroup group)

      Add the specified option group.
      Parameters:
        `group` - the OptionGroup that is to be added
      Returns:
        the resulting Options instance

    - #### addOption

          public Options addOption(java.lang.String opt,
                          java.lang.String description)

      Add an option that only contains a short name.

      The option does not take an argument.

      Parameters:
        `opt` - Short single-character name of the option.
        `description` - Self-documenting description
      Returns:
        the resulting Options instance
      Since:
        1.3

    - #### addOption

          public Options addOption(java.lang.String opt,
                          boolean hasArg,
                          java.lang.String description)

      Add an option that only contains a short-name.

      It may be specified as requiring an argument.

      Parameters:
        `opt` - Short single-character name of the option.
        `hasArg` - flag signally if an argument is required after this option
        `description` - Self-documenting description
      Returns:
        the resulting Options instance

    - #### addOption

          public Options addOption(java.lang.String opt,
                          java.lang.String longOpt,
                          boolean hasArg,
                          java.lang.String description)

      Add an option that contains a short-name and a long-name.

      It may be specified as requiring an argument.

      Parameters:
        `opt` - Short single-character name of the option.
        `longOpt` - Long multi-character name of the option.
        `hasArg` - flag signally if an argument is required after this option
        `description` - Self-documenting description
      Returns:
        the resulting Options instance

    - #### addRequiredOption

          public Options addRequiredOption(java.lang.String opt,
                                  java.lang.String longOpt,
                                  boolean hasArg,
                                  java.lang.String description)

      Add an option that contains a short-name and a long-name.

      The added option is set as required. It may be specified as requiring an argument. This method is a shortcut for:

           Options option = new Option(opt, longOpt, hasArg, description);
           option.setRequired(true);
           options.add(option);

      Parameters:
        `opt` - Short single-character name of the option.
        `longOpt` - Long multi-character name of the option.
        `hasArg` - flag signally if an argument is required after this option
        `description` - Self-documenting description
      Returns:
        the resulting Options instance
      Since:
        1.4

    - #### addOption

          public Options addOption(Option opt)

      Adds an option instance
      Parameters:
        `opt` - the option that is to be added
      Returns:
        the resulting Options instance

    - #### getOptions

          public java.util.Collection<Option> getOptions()

      Retrieve a read-only list of options in this set
      Returns:
        read-only Collection of `Option` objects in this descriptor

    - #### getRequiredOptions

          public java.util.List getRequiredOptions()

      Returns the required options.
      Returns:
        read-only List of required options

    - #### getOption

          public Option getOption(java.lang.String opt)

      Retrieve the `Option` matching the long or short name specified.

      The leading hyphens in the name are ignored (up to 2).

      Parameters:
        `opt` - short or long name of the `Option`
      Returns:
        the option represented by opt

    - #### getMatchingOptions

          public java.util.List<java.lang.String> getMatchingOptions(java.lang.String opt)

      Returns the options with a long name starting with the name specified.
      Parameters:
        `opt` - the partial name of the option
      Returns:
        the options matching the partial name specified, or an empty list if none matches
      Since:
        1.3

    - #### hasOption

          public boolean hasOption(java.lang.String opt)

      Returns whether the named `Option` is a member of this `Options`.
      Parameters:
        `opt` - short or long name of the `Option`
      Returns:
        true if the named `Option` is a member of this `Options`

    - #### hasLongOption

          public boolean hasLongOption(java.lang.String opt)

      Returns whether the named `Option` is a member of this `Options`.
      Parameters:
        `opt` - long name of the `Option`
      Returns:
        true if the named `Option` is a member of this `Options`
      Since:
        1.3

    - #### hasShortOption

          public boolean hasShortOption(java.lang.String opt)

      Returns whether the named `Option` is a member of this `Options`.
      Parameters:
        `opt` - short name of the `Option`
      Returns:
        true if the named `Option` is a member of this `Options`
      Since:
        1.3

    - #### getOptionGroup

          public OptionGroup getOptionGroup(Option opt)

      Returns the OptionGroup the `opt` belongs to.
      Parameters:
        `opt` - the option whose OptionGroup is being queried.
      Returns:
        the OptionGroup if `opt` is part of an OptionGroup, otherwise return null

    - #### toString

          public java.lang.String toString()

      Dump state, suitable for debugging.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        Stringified form of this object