## org.springframework.core.env
Class JOptCommandLinePropertySource

    java.lang.Object
      org.springframework.core.env.PropertySource<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.

### Requirements

Use of this class requires adding the jopt-simple JAR to your application classpath. Versions 3.0 and better are supported.

Since:
  3.1
Author:
  Chris Beams
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.PropertySource
`logger, name, source`

Constructor Summary
`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
`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.

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>`

### 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>`