public static class CommandLine.Model.PositionalParamSpec extends CommandLine.Model.ArgSpec
PositionalParamSpec
class models aspects of a positional parameter of a command, including whether
it is required or optional, and attributes for the usage help message describing the positional parameter.
Positional parameters have an index
(or a range of indices). A positional parameter is matched when the parser
encounters a command line argument at that index. Named options and their parameters do not change the index counter,
so the command line can contain a mixture of positional parameters and named options.
Depending on the positional parameter's arity
, the parser may consume multiple command line
arguments starting from the current index. The parser will call setValue
on
the PositionalParamSpec
for each of the parameters encountered.
For multi-value positional parameters, 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 positional parameter value from a String to the parameter's type.
converter
is configured, this will be used for type conversion.
If the positional parameter's type is a Map
, the map may have different types for its keys and its values, so
converters
should provide two converters: one for the map keys and one for the map values.type
is used to look up a converter in the list of
registered converters. For multi-value positional parameters,
the type
may be an array, or a Collection
or a Map
. In that case the elements are converted
based on the positional parameter's auxiliaryTypes
. 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, so auxiliaryTypes
should provide two types: one for the map keys and one for the map values.
PositionalParamSpec
objects are used by the picocli command line interpreter and help message generator.
Picocli can construct a PositionalParamSpec
automatically from fields and methods with @Parameters
annotations. Alternatively a PositionalParamSpec
can be constructed programmatically.
When a PositionalParamSpec
is created from a @Parameters
-annotated field or method,
it is "bound" to that field or method: this field is set (or the method is invoked) when the position is matched
and setValue
is called.
Programmatically constructed PositionalParamSpec
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 PositionalParamSpec
.
Modifier and Type | Class and Description |
---|---|
static class |
CommandLine.Model.PositionalParamSpec.Builder
Builder responsible for creating valid
PositionalParamSpec objects. |
annotatedElement, toString, typeInfo, valueIsDefaultValue
Modifier and Type | Method and Description |
---|---|
static CommandLine.Model.PositionalParamSpec.Builder |
builder() |
static CommandLine.Model.PositionalParamSpec.Builder |
builder(CommandLine.Model.IAnnotatedElement source,
CommandLine.IFactory factory) |
static CommandLine.Model.PositionalParamSpec.Builder |
builder(CommandLine.Model.PositionalParamSpec original)
Returns a Builder initialized from the specified
PositionalSpec . |
boolean |
equals(Object obj) |
protected Collection<String> |
getAdditionalDescriptionKeys()
Returns the additional lookup keys for finding description lines in the resource bundle for this positional parameter.
|
int |
hashCode() |
CommandLine.Range |
index()
Returns an index or range specifying which of the command line arguments should be assigned to this positional parameter.
|
boolean |
isOption()
Returns
true if this argument is a named option, false otherwise. |
boolean |
isPositional()
Returns
true if this argument is a positional parameter, false otherwise. |
CommandLine.Model.PositionalParamSpec.Builder |
toBuilder()
Returns a new Builder initialized with the attributes from this
PositionalParamSpec . |
arity, auxiliaryTypes, command, completionCandidates, converters, defaultValue, defaultValueString, defaultValueString, description, descriptionKey, echo, equalsImpl, getter, getValue, group, hashCodeImpl, hasInitialValue, hidden, hideParamSyntax, inherited, initialValue, interactive, internalShowDefaultValue, isMultiValue, isValueGettable, mapFallbackValue, messages, messages, originallyRequired, originalStringValues, parameterConsumer, paramLabel, preprocessor, prompt, renderedDescription, required, resetOriginalStringValues, resetStringValues, root, scope, scopeType, setter, setValue, setValue, showDefaultValue, splitRegex, splitRegexSynopsisLabel, stringValues, toString, type, typedValues, typeInfo, userObject
public static CommandLine.Model.PositionalParamSpec.Builder builder()
public static CommandLine.Model.PositionalParamSpec.Builder builder(CommandLine.Model.PositionalParamSpec original)
PositionalSpec
.public static CommandLine.Model.PositionalParamSpec.Builder builder(CommandLine.Model.IAnnotatedElement source, CommandLine.IFactory factory)
public CommandLine.Model.PositionalParamSpec.Builder toBuilder()
PositionalParamSpec
. Calling build
immediately will return a copy of this PositionalParamSpec
.public boolean isOption()
CommandLine.Model.ArgSpec
true
if this argument is a named option, false
otherwise.isOption
in class CommandLine.Model.ArgSpec
public boolean isPositional()
CommandLine.Model.ArgSpec
true
if this argument is a positional parameter, false
otherwise.isPositional
in class CommandLine.Model.ArgSpec
protected Collection<String> getAdditionalDescriptionKeys()
getAdditionalDescriptionKeys
in class CommandLine.Model.ArgSpec
paramLabel() + "[" + index() + "]"
.CommandLine.Model.OptionSpec.getAdditionalDescriptionKeys()
,
getAdditionalDescriptionKeys()
public CommandLine.Range index()
CommandLine.Parameters.index()