Class CommandLine.Range

java.lang.Object
nz.org.riskscape.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 Details

  • Constructor Details

    • 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 Details

    • 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.
      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>