Class EnvironmentVariableDefaultProvider

java.lang.Object
com.beust.jcommander.defaultprovider.EnvironmentVariableDefaultProvider
All Implemented Interfaces:
IDefaultProvider

public final class EnvironmentVariableDefaultProvider extends Object implements IDefaultProvider
A default provider that reads its default values from an environment variable. A prefix pattern can be provided to indicate how options are identified. The default pattern -/ mandates that options MUST start with either a dash or a slash. Options can have values separated by whitespace. Values can contain whitespace as long as they are single-quoted or double-quoted. Otherwhise whitespace identifies the end of a value.
  • Field Details

    • DEFAULT_VARIABLE_NAME

      private static final String DEFAULT_VARIABLE_NAME
      See Also:
    • DEFAULT_PREFIXES_PATTERN

      private static final String DEFAULT_PREFIXES_PATTERN
      See Also:
    • environmentVariableValue

      private final String environmentVariableValue
    • optionPrefixesPattern

      private final String optionPrefixesPattern
  • Constructor Details

    • EnvironmentVariableDefaultProvider

      public EnvironmentVariableDefaultProvider()
      Creates a default provider reading the environment variable JCOMMANDER_OPTS using the prefixes pattern -/.
    • EnvironmentVariableDefaultProvider

      public EnvironmentVariableDefaultProvider(String environmentVariableName, String optionPrefixes)
      Creates a default provider reading the specified environment variable using the specified prefixes pattern.
      Parameters:
      environmentVariableName - The name of the environment variable to read (e. g. "JCOMMANDER_OPTS"). Must not be null.
      optionPrefixes - A set of characters used to indicate the start of an option (e. g. "-/" if option names may start with either dash or slash). Must not be null.
    • EnvironmentVariableDefaultProvider

      EnvironmentVariableDefaultProvider(String environmentVariableName, String optionPrefixes, Function<String,String> resolver)
      For Unit Tests Only: Allows to mock the resolver, as Java cannot set environment variables.
      Parameters:
      environmentVariableName - The name of the environment variable to read. May be null if the passed resolver doesn't use it (e. g. Unit Test).
      optionPrefixes - A set of characters used to indicate the start of an option (e. g. "-/" if option names may start with either dash or slash). Must not be null.
      resolver - Reads the value from the environment variable (e. g. System::getenv). Must not be null.
  • Method Details

    • getDefaultValueFor

      public final String getDefaultValueFor(String optionName)
      Specified by:
      getDefaultValueFor in interface IDefaultProvider
      Parameters:
      optionName - The name of the option as specified in the names() attribute of the @Parameter option (e.g. "-file").
      Returns:
      the default value for this option.