org.springframework.core.env

## Class JOptCommandLinePropertySource

- java.lang.Object
- - org.springframework.core.env.PropertySource<T>
  - - org.springframework.core.env.EnumerablePropertySource<T>
    - - org.springframework.core.env.CommandLinePropertySource<joptsimple.OptionSet>
      - - org.springframework.core.env.JOptCommandLinePropertySource

-     public class JOptCommandLinePropertySource
      extends CommandLinePropertySource<joptsimple.OptionSet>

  `CommandLinePropertySource` implementation backed by a JOpt `OptionSet`.

  ## Typical usage

  Configure and execute an `OptionParser` against the `String[]` of arguments supplied to the `main` method, and create a `JOptCommandLinePropertySource` using the resulting `OptionSet` object:

       public static void main(String[] args) {
           OptionParser parser = new OptionParser();
           parser.accepts("option1");
           parser.accepts("option2").withRequiredArg();
           OptionSet options = parser.parse(args);
           PropertySource ps = new JOptCommandLinePropertySource(options);
           // ...
       }

  See `CommandLinePropertySource` for complete general usage examples.

  Requires JOpt version 4.3 or higher. Tested against JOpt up until 4.6.

  Since:
    3.1
  Author:
    Chris Beams, Juergen Hoeller, Dave Syer
  See Also:
    `CommandLinePropertySource`, `OptionParser`, `OptionSet`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.springframework.core.env.PropertySource

      `PropertySource.StubPropertySource`

  - ### Field Summary

    - ### Fields inherited from class org.springframework.core.env.CommandLinePropertySource

      `COMMAND_LINE_PROPERTY_SOURCE_NAME, DEFAULT_NON_OPTION_ARGS_PROPERTY_NAME`

    - ### Fields inherited from class org.springframework.core.env.EnumerablePropertySource

      `EMPTY_NAMES_ARRAY, logger`

    - ### Fields inherited from class org.springframework.core.env.PropertySource

      `name, source`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JOptCommandLinePropertySource(joptsimple.OptionSet options)` Create a new `JOptCommandLinePropertySource` having the default name and backed by the given `OptionSet`.
    `JOptCommandLinePropertySource(String name, joptsimple.OptionSet options)` Create a new `JOptCommandLinePropertySource` having the given name and backed by the given `OptionSet`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `containsOption(String name)` Return whether the set of option arguments parsed from the command line contains an option with the given name.
    `protected List<String>` | `getNonOptionArgs()` Return the collection of non-option arguments parsed from the command line.
    `List<String>` | `getOptionValues(String name)` Return the collection of values associated with the command line option having the given name.
    `String[]` | `getPropertyNames()` Return the names of all properties contained by the source object (never `null`).

    - ### Methods inherited from class org.springframework.core.env.CommandLinePropertySource

      `containsProperty, getProperty, setNonOptionArgsPropertyName`

    - ### Methods inherited from class org.springframework.core.env.PropertySource

      `equals, getName, getSource, hashCode, named, toString`

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

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

- - ### Constructor Detail

    - #### JOptCommandLinePropertySource

          public JOptCommandLinePropertySource(joptsimple.OptionSet options)

      Create a new `JOptCommandLinePropertySource` having the default name and backed by the given `OptionSet`.
      See Also:
        `CommandLinePropertySource.COMMAND_LINE_PROPERTY_SOURCE_NAME`, `CommandLinePropertySource.CommandLinePropertySource(Object)`

    - #### JOptCommandLinePropertySource

          public JOptCommandLinePropertySource(String name,
                                               joptsimple.OptionSet options)

      Create a new `JOptCommandLinePropertySource` having the given name and backed by the given `OptionSet`.

  - ### Method Detail

    - #### containsOption

          protected boolean containsOption(String name)

      Description copied from class: `CommandLinePropertySource`
      Return whether the set of option arguments parsed from the command line contains an option with the given name.
      Specified by:
        `containsOption` in class `CommandLinePropertySource<joptsimple.OptionSet>`

    - #### getPropertyNames

          public String[] getPropertyNames()

      Description copied from class: `EnumerablePropertySource`
      Return the names of all properties contained by the source object (never `null`).
      Specified by:
        `getPropertyNames` in class `EnumerablePropertySource<joptsimple.OptionSet>`

    - #### getOptionValues

          public List<String> getOptionValues(String name)

      Description copied from class: `CommandLinePropertySource`
      Return the collection of values associated with the command line option having the given name.
      - if the option is present and has no argument (e.g.: "--foo"), return an empty collection (`[]`)
      - if the option is present and has a single value (e.g. "--foo=bar"), return a collection having one element (`["bar"]`)
      - if the option is present and the underlying command line parsing library supports multiple arguments (e.g. "--foo=bar --foo=baz"), return a collection having elements for each value (`["bar", "baz"]`)
      - if the option is not present, return `null`
      Specified by:
        `getOptionValues` in class `CommandLinePropertySource<joptsimple.OptionSet>`

    - #### getNonOptionArgs

          protected List<String> getNonOptionArgs()

      Description copied from class: `CommandLinePropertySource`
      Return the collection of non-option arguments parsed from the command line. Never `null`.
      Specified by:
        `getNonOptionArgs` in class `CommandLinePropertySource<joptsimple.OptionSet>`