Package org.apache.commons.cli
Class Option.Builder
java.lang.Object
org.apache.commons.cli.Option.Builder
- Enclosing class:
- Option
A nested builder class to create
Option
instances using descriptive methods.
Example usage:
Option option = Option.builder("a").required(true).longOpt("arg-name").build();
- Since:
- 1.3
-
Method Summary
Modifier and TypeMethodDescriptionSets the display name for the argument value.build()
Constructs an Option with the values declared by thisOption.Builder
.Sets the description for this option.hasArg()
Indicates that the Option will require an argument.hasArg
(boolean hasArg) Indicates if the Option has an argument or not.hasArgs()
Indicates that the Option can have unlimited argument values.Sets the long name of the Option.numberOfArgs
(int numberOfArgs) Sets the number of argument values the Option can take.Sets the name of the Option.optionalArg
(boolean isOptional) Sets whether the Option can have an optional argument.required()
Marks this Option as required.required
(boolean required) Sets whether the Option is mandatory.Sets the type of the Option.The Option will use '=' as a means to separate argument value.valueSeparator
(char sep) The Option will usesep
as a means to separate argument values.
-
Method Details
-
argName
Sets the display name for the argument value.- Parameters:
argName
- the display name for the argument value.- Returns:
- this builder, to allow method chaining
-
build
Constructs an Option with the values declared by thisOption.Builder
.- Returns:
- the new
Option
- Throws:
IllegalArgumentException
- if neitheropt
orlongOpt
has been set
-
desc
Sets the description for this option.- Parameters:
description
- the description of the option.- Returns:
- this builder, to allow method chaining
-
hasArg
Indicates that the Option will require an argument.- Returns:
- this builder, to allow method chaining
-
hasArg
Indicates if the Option has an argument or not.- Parameters:
hasArg
- specifies whether the Option takes an argument or not- Returns:
- this builder, to allow method chaining
-
hasArgs
Indicates that the Option can have unlimited argument values.- Returns:
- this builder, to allow method chaining
-
longOpt
Sets the long name of the Option.- Parameters:
longOpt
- the long name of the Option- Returns:
- this builder, to allow method chaining
-
numberOfArgs
Sets the number of argument values the Option can take.- Parameters:
numberOfArgs
- the number of argument values- Returns:
- this builder, to allow method chaining
-
option
Sets the name of the Option.- Parameters:
option
- the name of the Option- Returns:
- this builder, to allow method chaining
- Throws:
IllegalArgumentException
- if there are any non valid Option characters inopt
- Since:
- 1.5.0
-
optionalArg
Sets whether the Option can have an optional argument.- Parameters:
isOptional
- specifies whether the Option can have an optional argument.- Returns:
- this builder, to allow method chaining
-
required
Marks this Option as required.- Returns:
- this builder, to allow method chaining
-
required
Sets whether the Option is mandatory.- Parameters:
required
- specifies whether the Option is mandatory- Returns:
- this builder, to allow method chaining
-
type
Sets the type of the Option.- Parameters:
type
- the type of the Option- Returns:
- this builder, to allow method chaining
-
valueSeparator
The Option will use '=' as a means to separate argument value.- Returns:
- this builder, to allow method chaining
-
valueSeparator
The Option will usesep
as a means to separate argument values.Example:
Option opt = Option.builder("D").hasArgs().valueSeparator('=').build(); Options options = new Options(); options.addOption(opt); String[] args = {"-Dkey=value"}; CommandLineParser parser = new DefaultParser(); CommandLine line = parser.parse(options, args); String propertyName = line.getOptionValues("D")[0]; // will be "key" String propertyValue = line.getOptionValues("D")[1]; // will be "value"
- Parameters:
sep
- The value separator.- Returns:
- this builder, to allow method chaining
-