Class CommandLine.Model.OptionSpec
- All Implemented Interfaces:
CommandLine.Model.IOrdered
- Enclosing class:
- CommandLine.Model
OptionSpec class models aspects of a named option of a command, including whether
it is required or optional, the option parameters supported (or required) by the option,
and attributes for the usage help message describing the option.
An option has one or more names. The option is matched when the parser encounters one of the option names in the command line arguments.
Depending on the option's arity,
the parser may expect it to have option parameters. The parser will call setValue on
the matched option for each of the option parameters encountered.
For multi-value options, the type may be an array, a Collection or a Map. In this case
the parser will get the data structure by calling getValue and modify the contents of this data structure.
(In the case of arrays, the array is replaced with a new instance with additional elements.)
Before calling the setter, picocli converts the option parameter value from a String to the option parameter's type.
- If a option-specific
converteris configured, this will be used for type conversion. If the option's type is aMap, the map may have different types for its keys and its values, soconvertersshould provide two converters: one for the map keys and one for the map values. - Otherwise, the option's
typeis used to look up a converter in the list of registered converters. For multi-value options, thetypemay be an array, or aCollectionor aMap. In that case the elements are converted based on the option'sauxiliaryTypes. The auxiliaryType is used to look up the converter(s) to use to convert the individual parameter values. Maps may have different types for its keys and its values, soauxiliaryTypesshould provide two types: one for the map keys and one for the map values.
OptionSpec objects are used by the picocli command line interpreter and help message generator.
Picocli can construct an OptionSpec automatically from fields and methods with @Option
annotations. Alternatively an OptionSpec can be constructed programmatically.
When an OptionSpec is created from an @Option -annotated field or method, it is "bound"
to that field or method: this field is set (or the method is invoked) when the option is matched and
setValue is called.
Programmatically constructed OptionSpec instances will remember the value passed to the
setValue method so it can be retrieved with the getValue method.
This behaviour can be customized by installing a custom CommandLine.Model.IGetter and CommandLine.Model.ISetter on the OptionSpec.
- Since:
- 3.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder responsible for creating validOptionSpecobjects. -
Field Summary
FieldsFields inherited from class nz.org.riskscape.picocli.CommandLine.Model.ArgSpec
toString -
Method Summary
Modifier and TypeMethodDescriptionbuilder(CommandLine.Model.IAnnotatedElement source, CommandLine.IFactory factory) builder(CommandLine.Model.OptionSpec original) Returns a Builder initialized from the specifiedOptionSpec.booleanReturns the fallback value for this option: the value that is assigned for options with an optional parameter (for example,arity = "0..1") if the option was specified on the command line without parameter.protected Collection<String>Returns the additional lookup keys for finding description lines in the resource bundle for this option.inthashCode()booleanhelp()Deprecated.protected booleaninternalShowDefaultValue(boolean usageMessageShowDefaults) Returns whether the default for this option or positional parameter should be shown, potentially overriding the specified global setting.booleanisOption()Returnstrueif this argument is a named option,falseotherwise.booleanReturnstrueif this argument is a positional parameter,falseotherwise.Returns the longest option name.String[]names()Returns one or more option names.booleanReturns whether a negative version for this boolean option is automatically added.intorder()Returns the position in the options list in the usage help message at which this option should be shown.Returns the shortest option name.Returns a new Builder initialized with the attributes from thisOptionSpec.booleanReturns whether this option allows the user to request usage help.booleanReturns whether this option allows the user to request version information.Methods inherited from class nz.org.riskscape.picocli.CommandLine.Model.ArgSpec
arity, auxiliaryTypes, command, completionCandidates, converters, defaultValue, defaultValueString, defaultValueString, description, descriptionKey, equalsImpl, getter, getValue, group, hashCodeImpl, hasInitialValue, hidden, hideParamSyntax, initialValue, interactive, isMultiValue, messages, messages, originalStringValues, parameterConsumer, paramLabel, renderedDescription, required, resetOriginalStringValues, resetStringValues, scope, setter, setValue, setValue, showDefaultValue, splitRegex, stringValues, toString, type, typedValues, typeInfo, userObject
-
Field Details
-
DEFAULT_FALLBACK_VALUE
- See Also:
-
-
Method Details
-
builder
-
builder
-
builder
public static CommandLine.Model.OptionSpec.Builder builder(CommandLine.Model.IAnnotatedElement source, CommandLine.IFactory factory) -
builder
Returns a Builder initialized from the specifiedOptionSpec.- Since:
- 4.0
-
toBuilder
Returns a new Builder initialized with the attributes from thisOptionSpec. Callingbuildimmediately will return a copy of thisOptionSpec.- Returns:
- a builder that can create a copy of this spec
-
isOption
public boolean isOption()Description copied from class:CommandLine.Model.ArgSpecReturnstrueif this argument is a named option,falseotherwise.- Specified by:
isOptionin classCommandLine.Model.ArgSpec
-
isPositional
public boolean isPositional()Description copied from class:CommandLine.Model.ArgSpecReturnstrueif this argument is a positional parameter,falseotherwise.- Specified by:
isPositionalin classCommandLine.Model.ArgSpec
-
internalShowDefaultValue
protected boolean internalShowDefaultValue(boolean usageMessageShowDefaults) Description copied from class:CommandLine.Model.ArgSpecReturns whether the default for this option or positional parameter should be shown, potentially overriding the specified global setting.- Overrides:
internalShowDefaultValuein classCommandLine.Model.ArgSpec- Parameters:
usageMessageShowDefaults- whether the command's UsageMessageSpec is configured to show default values.
-
getAdditionalDescriptionKeys
Returns the additional lookup keys for finding description lines in the resource bundle for this option.- Specified by:
getAdditionalDescriptionKeysin classCommandLine.Model.ArgSpec- Returns:
- option names (after variable interpolation), without leading hyphens, slashes and other non-Java identifier characters.
- Since:
- 4.0
- See Also:
-
names
Returns one or more option names. The returned array will contain at least one option name.- See Also:
-
longestName
Returns the longest option name. -
shortestName
Returns the shortest option name.- Since:
- 3.8
-
order
public int order()Returns the position in the options list in the usage help message at which this option should be shown. Options with a lower number are shown before options with a higher number. This attribute is only honored ifCommandLine.Model.UsageMessageSpec.sortOptions()isfalsefor this command.- Specified by:
orderin interfaceCommandLine.Model.IOrdered- Since:
- 3.9
- See Also:
-
help
Deprecated.UseusageHelp()andversionHelp()instead.Returns whether this option disables validation of the other arguments.- See Also:
-
usageHelp
public boolean usageHelp()Returns whether this option allows the user to request usage help.- See Also:
-
versionHelp
public boolean versionHelp()Returns whether this option allows the user to request version information.- See Also:
-
negatable
public boolean negatable()Returns whether a negative version for this boolean option is automatically added. The form of the negative name is determined by theCommandLine.INegatableOptionTransformer.- Since:
- 4.0
- See Also:
-
fallbackValue
Returns the fallback value for this option: the value that is assigned for options with an optional parameter (for example,arity = "0..1") if the option was specified on the command line without parameter.- Since:
- 4.0
- See Also:
-
equals
-
hashCode
public int hashCode()
-
usageHelp()andversionHelp()instead.