org.springframework.core.env
Class SimpleCommandLinePropertySource

java.lang.Object
  extended by org.springframework.core.env.PropertySource<T>
      extended by org.springframework.core.env.CommandLinePropertySource<org.springframework.core.env.CommandLineArgs>
          extended by org.springframework.core.env.SimpleCommandLinePropertySource

public class SimpleCommandLinePropertySource
extends CommandLinePropertySource<org.springframework.core.env.CommandLineArgs>

CommandLinePropertySource implementation backed by a simple String array.

Purpose

This CommandLinePropertySource implementation aims to provide the simplest possible approach to parsing command line arguments. As with all CommandLinePropertySource implementations, command line arguments are broken into two distinct groups: option arguments and non-option arguments, as described below (some sections copied from Javadoc for SimpleCommandLineArgsParser):

Working with option arguments

Option arguments must adhere to the exact syntax:
--optName[=optValue]
That is, options must be prefixed with "--", and may or may not specify a value. If a value is specified, the name and value must be separated without spaces by an equals sign ("=").

Valid examples of option arguments

 --foo
 --foo=bar
 --foo="bar then baz"
 --foo=bar,baz,biz

Invalid examples of option arguments

 -foo
 --foo bar
 --foo = bar
 --foo=bar --foo=baz --foo=biz

Working with non-option arguments

Any and all arguments specified at the command line without the "--" option prefix will be considered as "non-option arguments" and made available through the getNonOptionArgs() method.

Typical usage

 public static void main(String[] args) {
     PropertySource ps = new SimpleCommandLinePropertySource(args);
     // ...
 }
See CommandLinePropertySource for complete general usage examples.

Beyond the basics

When more fully-featured command line parsing is necessary, consider using the provided JOptCommandLinePropertySource, or implement your own CommandLinePropertySource against the command line parsing library of your choice!

Since:
3.1
Author:
Chris Beams
See Also:
CommandLinePropertySource, JOptCommandLinePropertySource

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
SimpleCommandLinePropertySource(String... args)
          Create a new SimpleCommandLinePropertySource having the default name and backed by the given String[] of command line arguments.
SimpleCommandLinePropertySource(String name, String[] args)
          Create a new SimpleCommandLinePropertySource having the given name and backed by the given String[] of command line arguments.
 
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.
protected  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

SimpleCommandLinePropertySource

public SimpleCommandLinePropertySource(String... args)
Create a new SimpleCommandLinePropertySource having the default name and backed by the given String[] of command line arguments.

See Also:
CommandLinePropertySource.COMMAND_LINE_PROPERTY_SOURCE_NAME, CommandLinePropertySource.CommandLinePropertySource(Object)

SimpleCommandLinePropertySource

public SimpleCommandLinePropertySource(String name,
                                       String[] args)
Create a new SimpleCommandLinePropertySource having the given name and backed by the given String[] of command line arguments.

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<org.springframework.core.env.CommandLineArgs>

getOptionValues

protected 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.

Specified by:
getOptionValues in class CommandLinePropertySource<org.springframework.core.env.CommandLineArgs>

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<org.springframework.core.env.CommandLineArgs>