picocli

## Class CommandLine.Range

- java.lang.Object
- - picocli.CommandLine.Range

All Implemented Interfaces:
  Comparable<CommandLine.Range>

Enclosing class:
  CommandLine

    public static class CommandLine.Range
    extends Object
    implements Comparable<CommandLine.Range>

Describes the number of parameters required and accepted by an option or a positional parameter.

Since:
  0.9.7

### Field Summary

Fields
`boolean` `isVariable` Deprecated. use `isVariable()` instead
`int` `max` Deprecated. use `max()` instead
`int` `min` Deprecated. use `min()` instead

### Constructor Summary

Constructors
Constructor and Description
`Range(int min, int max, boolean variable, boolean unspecified, String originalValue)` Constructs a new Range object with the specified parameters.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`int` `compareTo(CommandLine.Range other)`
`boolean` `contains(int value)` Returns `true` if this Range includes the specified value, `false` otherwise.
`static CommandLine.Range` `defaultArity(Class<?> type)` Deprecated. use `defaultArity(Field)` instead
`static CommandLine.Range` `defaultArity(Field field)` Returns the default arity `Range`: for interactive options/positional parameters, this is 0; for `options` this is 0 for booleans and 1 for other types, for `parameters` booleans have arity 0, arrays or Collections have arity "0..*", and other types have arity 1.
`boolean` `equals(Object object)`
`int` `hashCode()`
`boolean` `isUnresolved()` Returns `true` if this range contains variables that have not been expanded yet, `false` if this Range does not contain any variables.
`boolean` `isUnspecified()` Returns `true` if this Range is a default value, `false` if the user specified this value.
`boolean` `isVariable()` Returns `true` if this range has no fixed upper bound.
`int` `max()` Returns the upper bound of this range (inclusive), or `Integer.MAX_VALUE` if this range has no upper bound.
`CommandLine.Range` `max(int newMax)` Returns a new Range object with the `max` value replaced by the specified value.
`int` `min()` Returns the lower bound of this range (inclusive).
`CommandLine.Range` `min(int newMin)` Returns a new Range object with the `min` value replaced by the specified value.
`static CommandLine.Range` `optionArity(Field field)` Returns a new `Range` based on the `CommandLine.Option.arity()` annotation on the specified field, or the field type's default arity if no arity was specified.
`static CommandLine.Range` `parameterArity(Field field)` Returns a new `Range` based on the `CommandLine.Parameters.arity()` annotation on the specified field, or the field type's default arity if no arity was specified.
`static CommandLine.Range` `parameterIndex(Field field)` Returns a new `Range` based on the `CommandLine.Parameters.index()` annotation on the specified field.
`String` `toString()`
`CommandLine.Range` `unspecified(boolean unspecified)` Returns a new Range object with the `isUnspecified` value replaced by the specified value.
`static CommandLine.Range` `valueOf(String range)` Leniently parses the specified String as an `Range` value and return the result.

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

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

### Field Detail

#### min

    @Deprecated
    public final int min

Deprecated. use `min()` instead

#### max

    @Deprecated
    public final int max

Deprecated. use `max()` instead

#### isVariable

    @Deprecated
    public final boolean isVariable

Deprecated. use `isVariable()` instead

### Constructor Detail

#### Range

    public Range(int min,
                 int max,
                 boolean variable,
                 boolean unspecified,
                 String originalValue)

Constructs a new Range object with the specified parameters.

Parameters:
  `min` - minimum number of required parameters
  `max` - maximum number of allowed parameters (or Integer.MAX_VALUE if variable)
  `variable` - `true` if any number or parameters is allowed, `false` otherwise
  `unspecified` - `true` if no arity was specified on the option/parameter (value is based on type)
  `originalValue` - the original value that was specified on the option or parameter

### Method Detail

#### optionArity

    public static CommandLine.Range optionArity(Field field)

Returns a new `Range` based on the `CommandLine.Option.arity()` annotation on the specified field, or the field type's default arity if no arity was specified.

Parameters:
  `field` - the field whose Option annotation to inspect
Returns:
  a new `Range` based on the Option arity annotation on the specified field

#### parameterArity

    public static CommandLine.Range parameterArity(Field field)

Returns a new `Range` based on the `CommandLine.Parameters.arity()` annotation on the specified field, or the field type's default arity if no arity was specified.

Parameters:
  `field` - the field whose Parameters annotation to inspect
Returns:
  a new `Range` based on the Parameters arity annotation on the specified field

#### parameterIndex

    public static CommandLine.Range parameterIndex(Field field)

Returns a new `Range` based on the `CommandLine.Parameters.index()` annotation on the specified field.

Parameters:
  `field` - the field whose Parameters annotation to inspect
Returns:
  a new `Range` based on the Parameters index annotation on the specified field

#### defaultArity

    public static CommandLine.Range defaultArity(Field field)

Returns the default arity `Range`: for interactive options/positional parameters, this is 0; for `options` this is 0 for booleans and 1 for other types, for `parameters` booleans have arity 0, arrays or Collections have arity "0..*", and other types have arity 1.

Parameters:
  `field` - the field whose default arity to return
Returns:
  a new `Range` indicating the default arity of the specified field
Since:
  2.0

#### defaultArity

    @Deprecated
    public static CommandLine.Range defaultArity(Class<?> type)

Deprecated. use `defaultArity(Field)` instead
Returns the default arity `Range` for `options`: booleans have arity 0, other types have arity 1.

Parameters:
  `type` - the type whose default arity to return
Returns:
  a new `Range` indicating the default arity of the specified type

#### valueOf

    public static CommandLine.Range valueOf(String range)

Leniently parses the specified String as an `Range` value and return the result. A range string can be a fixed integer value or a range of the form `MIN_VALUE + ".." + MAX_VALUE`. If the `MIN_VALUE` string is not numeric, the minimum is zero. If the `MAX_VALUE` is not numeric, the range is taken to be variable and the maximum is `Integer.MAX_VALUE`.

Parameters:
  `range` - the value range string to parse
Returns:
  a new `Range` value

#### min

    public CommandLine.Range min(int newMin)

Returns a new Range object with the `min` value replaced by the specified value. The `max` of the returned Range is guaranteed not to be less than the new `min` value.

Parameters:
  `newMin` - the `min` value of the returned Range object
Returns:
  a new Range object with the specified `min` value

#### max

    public CommandLine.Range max(int newMax)

Returns a new Range object with the `max` value replaced by the specified value. The `min` of the returned Range is guaranteed not to be greater than the new `max` value.

Parameters:
  `newMax` - the `max` value of the returned Range object
Returns:
  a new Range object with the specified `max` value

#### unspecified

    public CommandLine.Range unspecified(boolean unspecified)

Returns a new Range object with the `isUnspecified` value replaced by the specified value.

Parameters:
  `unspecified` - the `unspecified` value of the returned Range object
Returns:
  a new Range object with the specified `unspecified` value

#### isUnspecified

    public boolean isUnspecified()

Returns `true` if this Range is a default value, `false` if the user specified this value.

Since:
  4.0

#### isUnresolved

    public boolean isUnresolved()

Returns `true` if this range contains variables that have not been expanded yet, `false` if this Range does not contain any variables.

Since:
  4.0

#### min

    public int min()

Returns the lower bound of this range (inclusive).

Since:
  4.0

#### max

    public int max()

Returns the upper bound of this range (inclusive), or `Integer.MAX_VALUE` if this range has no upper bound.

Since:
  4.0

#### isVariable

    public boolean isVariable()

Returns `true` if this range has no fixed upper bound.

Since:
  4.0

#### contains

    public boolean contains(int value)

Returns `true` if this Range includes the specified value, `false` otherwise.

Parameters:
  `value` - the value to check
Returns:
  `true` if the specified value is not less than the minimum and not greater than the maximum of this Range

#### equals

    public boolean equals(Object object)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### compareTo

    public int compareTo(CommandLine.Range other)

Specified by:
  `compareTo` in interface `Comparable<CommandLine.Range>`