picocli

## Class CommandLine.Model.ArgSpec

- java.lang.Object
- - picocli.CommandLine.Model.ArgSpec

Direct Known Subclasses:
  CommandLine.Model.OptionSpec, CommandLine.Model.PositionalParamSpec

Enclosing class:
  CommandLine.Model

    public abstract static class CommandLine.Model.ArgSpec
    extends java.lang.Object

Models the shared attributes of `CommandLine.Model.OptionSpec` and `CommandLine.Model.PositionalParamSpec`.

Since:
  3.0

### Field Summary

Fields
`protected java.lang.String` `toString`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
`CommandLine.Range` `arity()` Returns how many arguments this option or positional parameter requires.
`java.lang.Class<?>[]` `auxiliaryTypes()` Returns auxiliary type information used when the `type()` is a generic `Collection`, `Map` or an abstract class.
`java.lang.Iterable<java.lang.String>` `completionCandidates()` Returns the explicitly set completion candidates for this option or positional parameter, valid enum constant names, or `null` if this option or positional parameter does not have any completion candidates and its type is not an enum.
`CommandLine.ITypeConverter<?>[]` `converters()` Returns one or more `type converters` to use to convert the command line argument into a strongly typed value (or key-value pair for map fields).
`java.lang.String` `defaultValue()` Returns the default value of this option or positional parameter, before splitting and type conversion.
`java.lang.String` `defaultValueString()` Returns the default value String displayed in the description.
`java.lang.String[]` `description()` Returns the description template of this option, before variables are rendered.
`java.lang.String` `descriptionKey()` Returns the description key of this arg spec, used to get the description from a resource bundle.
`protected boolean` `equalsImpl(CommandLine.Model.ArgSpec other)`
`CommandLine.Model.IGetter` `getter()` Returns the `CommandLine.Model.IGetter` that is responsible for supplying the value of this argument.
`<T> T` `getValue()` Returns the current value of this argument.
`protected int` `hashCodeImpl()`
`boolean` `hasInitialValue()` Determines whether the option or positional parameter will be reset to the `initialValue()` before parsing new input.
`boolean` `hidden()` Returns whether this option should be excluded from the usage message.
`boolean` `hideParamSyntax()` Returns whether usage syntax decorations around the paramLabel should be suppressed.
`java.lang.Object` `initialValue()` Returns the initial value this option or positional parameter.
`boolean` `interactive()` Returns whether this option will prompt the user to enter a value on the command line.
`protected boolean` `internalShowDefaultValue(boolean usageHelpShowDefaults)` Returns whether the default for this option or positional parameter should be shown, potentially overriding the specified global setting.
`boolean` `isMultiValue()` Returns `true` if this argument's `type()` is an array, a `Collection` or a `Map`, `false` otherwise.
`abstract boolean` `isOption()` Returns `true` if this argument is a named option, `false` otherwise.
`abstract boolean` `isPositional()` Returns `true` if this argument is a positional parameter, `false` otherwise.
`CommandLine.Model.Messages` `messages()` Returns the Messages for this arg specification, or `null`.
`CommandLine.Model.ArgSpec` `messages(CommandLine.Model.Messages msgs)` Sets the Messages for this ArgSpec, and returns this ArgSpec.
`java.util.List<java.lang.String>` `originalStringValues()` Returns the original command line arguments matched by this option or positional parameter spec.
`java.lang.String` `paramLabel()` Returns the name of the option or positional parameter used in the usage help message.
`java.lang.String[]` `renderedDescription()` Returns the description of this option, after variables are rendered.
`boolean` `required()` Returns whether this is a required option or positional parameter.
`protected void` `resetOriginalStringValues()` Sets the `originalStringValues` to a new list instance.
`protected void` `resetStringValues()` Sets the `stringValues` to a new list instance.
`CommandLine.Model.ISetter` `setter()` Returns the `CommandLine.Model.ISetter` that is responsible for modifying the value of this argument.
`<T> T` `setValue(T newValue)` Sets the value of this argument to the specified value and returns the previous value.
`<T> T` `setValue(T newValue, CommandLine commandLine)` Deprecated. use `setValue(Object)` instead. This was a design mistake.
`CommandLine.Help.Visibility` `showDefaultValue()` Returns whether this option or positional parameter's default value should be shown in the usage help.
`java.lang.String` `splitRegex()` Returns a regular expression to split option parameter values or `""` if the value should not be split.
`java.util.List<java.lang.String>` `stringValues()` Returns the untyped command line arguments matched by this option or positional parameter spec.
`java.lang.String` `toString()` Returns a string respresentation of this option or positional parameter.
`java.lang.Class<?>` `type()` Returns the type to convert the option or positional parameter to before setting the value.
`java.util.List<java.lang.Object>` `typedValues()` Returns the typed command line arguments matched by this option or positional parameter spec.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### toString

    protected java.lang.String toString

### Method Detail

#### required

    public boolean required()

Returns whether this is a required option or positional parameter.

See Also:
  `CommandLine.Option.required()`

#### interactive

    public boolean interactive()

Returns whether this option will prompt the user to enter a value on the command line.

See Also:
  `CommandLine.Option.interactive()`

#### description

    public java.lang.String[] description()

Returns the description template of this option, before variables are rendered.

See Also:
  `CommandLine.Option.description()`

#### descriptionKey

    public java.lang.String descriptionKey()

Returns the description key of this arg spec, used to get the description from a resource bundle.

Since:
  3.6
See Also:
  `CommandLine.Option.descriptionKey()`, `CommandLine.Parameters.descriptionKey()`

#### renderedDescription

    public java.lang.String[] renderedDescription()

Returns the description of this option, after variables are rendered. Used when generating the usage documentation.

Since:
  3.2
See Also:
  `CommandLine.Option.description()`

#### arity

    public CommandLine.Range arity()

Returns how many arguments this option or positional parameter requires.

See Also:
  `CommandLine.Option.arity()`

#### paramLabel

    public java.lang.String paramLabel()

Returns the name of the option or positional parameter used in the usage help message.

See Also:
  `{@link Parameters#paramLabel()}`

#### hideParamSyntax

    public boolean hideParamSyntax()

Returns whether usage syntax decorations around the paramLabel should be suppressed. The default is `false`: by default, the paramLabel is surrounded with `'['` and `']'` characters if the value is optional and followed by ellipses ("...") when multiple values can be specified.

Since:
  3.6.0

#### auxiliaryTypes

    public java.lang.Class<?>[] auxiliaryTypes()

Returns auxiliary type information used when the `type()` is a generic `Collection`, `Map` or an abstract class.

See Also:
  `CommandLine.Option.type()`

#### converters

    public CommandLine.ITypeConverter<?>[] converters()

Returns one or more `type converters` to use to convert the command line argument into a strongly typed value (or key-value pair for map fields). This is useful when a particular option or positional parameter should use a custom conversion that is different from the normal conversion for the arg spec's type.

See Also:
  `CommandLine.Option.converter()`

#### splitRegex

    public java.lang.String splitRegex()

Returns a regular expression to split option parameter values or `""` if the value should not be split.

See Also:
  `CommandLine.Option.split()`

#### hidden

    public boolean hidden()

Returns whether this option should be excluded from the usage message.

See Also:
  `CommandLine.Option.hidden()`

#### type

    public java.lang.Class<?> type()

Returns the type to convert the option or positional parameter to before setting the value.

#### defaultValue

    public java.lang.String defaultValue()

Returns the default value of this option or positional parameter, before splitting and type conversion. This method returns the programmatically set value; this may differ from the default value that is actually used: if this ArgSpec is part of a CommandSpec with a `CommandLine.IDefaultValueProvider`, picocli will first try to obtain the default value from the default value provider, and this method is only called if the default provider is `null` or returned a `null` value.

Returns:
  the programmatically set default value of this option/positional parameter, returning `null` means this option or positional parameter does not have a default
See Also:
  `CommandLine.Model.CommandSpec.defaultValueProvider()`

#### initialValue

    public java.lang.Object initialValue()

Returns the initial value this option or positional parameter. If `hasInitialValue()` is true, the option will be reset to the initial value before parsing (regardless of whether a default value exists), to clear values that would otherwise remain from parsing previous input.

#### hasInitialValue

    public boolean hasInitialValue()

Determines whether the option or positional parameter will be reset to the `initialValue()` before parsing new input.

#### showDefaultValue

    public CommandLine.Help.Visibility showDefaultValue()

Returns whether this option or positional parameter's default value should be shown in the usage help.

#### defaultValueString

    public java.lang.String defaultValueString()

Returns the default value String displayed in the description. If this ArgSpec is part of a CommandSpec with a `CommandLine.IDefaultValueProvider`, this method will first try to obtain the default value from the default value provider; if the provider is `null` or if it returns a `null` value, then next any value set to `defaultValue()` is returned, and if this is also `null`, finally the initial value is returned.

See Also:
  `CommandLine.Model.CommandSpec.defaultValueProvider()`, `defaultValue()`

#### completionCandidates

    public java.lang.Iterable<java.lang.String> completionCandidates()

Returns the explicitly set completion candidates for this option or positional parameter, valid enum constant names, or `null` if this option or positional parameter does not have any completion candidates and its type is not an enum.

Returns:
  the completion candidates for this option or positional parameter, valid enum constant names, or `null`
Since:
  3.2

#### getter

    public CommandLine.Model.IGetter getter()

Returns the `CommandLine.Model.IGetter` that is responsible for supplying the value of this argument.

#### setter

    public CommandLine.Model.ISetter setter()

Returns the `CommandLine.Model.ISetter` that is responsible for modifying the value of this argument.

#### getValue

    public <T> T getValue()
                   throws CommandLine.PicocliException

Returns the current value of this argument. Delegates to the current `getter()`.

Throws:
  `CommandLine.PicocliException`

#### setValue

    public <T> T setValue(T newValue)
                   throws CommandLine.PicocliException

Sets the value of this argument to the specified value and returns the previous value. Delegates to the current `setter()`.

Throws:
  `CommandLine.PicocliException`

#### setValue

    @Deprecated
    public <T> T setValue(T newValue,
                                       CommandLine commandLine)
                                throws CommandLine.PicocliException

Deprecated. use `setValue(Object)` instead. This was a design mistake.
Sets the value of this argument to the specified value and returns the previous value. Delegates to the current `setter()`.

Throws:
  `CommandLine.PicocliException`
Since:
  3.5

#### isMultiValue

    public boolean isMultiValue()

Returns `true` if this argument's `type()` is an array, a `Collection` or a `Map`, `false` otherwise.

#### isOption

    public abstract boolean isOption()

Returns `true` if this argument is a named option, `false` otherwise.

#### isPositional

    public abstract boolean isPositional()

Returns `true` if this argument is a positional parameter, `false` otherwise.

#### stringValues

    public java.util.List<java.lang.String> stringValues()

Returns the untyped command line arguments matched by this option or positional parameter spec.

Returns:
  the matched arguments after splitting, but before type conversion. For map properties, `"key=value"` values are split into the key and the value part.

#### typedValues

    public java.util.List<java.lang.Object> typedValues()

Returns the typed command line arguments matched by this option or positional parameter spec.

Returns:
  the matched arguments after splitting and type conversion. For map properties, `"key=value"` values are split into the key and the value part.

#### resetStringValues

    protected void resetStringValues()

Sets the `stringValues` to a new list instance.

#### originalStringValues

    public java.util.List<java.lang.String> originalStringValues()

Returns the original command line arguments matched by this option or positional parameter spec.

Returns:
  the matched arguments as found on the command line: empty Strings for options without value, the values have not been split, and for map properties values may look like `"key=value"`

#### resetOriginalStringValues

    protected void resetOriginalStringValues()

Sets the `originalStringValues` to a new list instance.

#### internalShowDefaultValue

    protected boolean internalShowDefaultValue(boolean usageHelpShowDefaults)

Returns whether the default for this option or positional parameter should be shown, potentially overriding the specified global setting.

Parameters:
  `usageHelpShowDefaults` - whether the command's UsageMessageSpec is configured to show default values.

#### messages

    public CommandLine.Model.Messages messages()

Returns the Messages for this arg specification, or `null`.

Since:
  3.6

#### messages

    public CommandLine.Model.ArgSpec messages(CommandLine.Model.Messages msgs)

Sets the Messages for this ArgSpec, and returns this ArgSpec.

Parameters:
  `msgs` - the new Messages value, may be `null`
Since:
  3.6
See Also:
  `CommandLine.Command.resourceBundle()`, `CommandLine.Model.OptionSpec.description()`, `CommandLine.Model.PositionalParamSpec.description()`

#### toString

    public java.lang.String toString()

Returns a string respresentation of this option or positional parameter.

Overrides:
  `toString` in class `java.lang.Object`

#### equalsImpl

    protected boolean equalsImpl(CommandLine.Model.ArgSpec other)

#### hashCodeImpl

    protected int hashCodeImpl()