Module info.picocli
Package picocli

Class CommandLine.Range

    • 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 effectively "0..1" for booleans and 1 for other types, for parameters booleans have arity 1, arrays or Collections have arity "0..*", and other types have arity 1.

        Implementation Notes

        The returned Range for boolean options has an effective arity of "0..1". This is implemented by returning a Range with arity "0", and its unspecified property set to true. This implementation may change in the future.

        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 a 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 a relative index like "1+", or variables that have not been expanded yet, false if this Range does not contain any variables or relative indices.
        Since:
        4.0
      • isRelative

        public boolean isRelative()
        Returns true if this Range contains a relative index like "1+", or false if this Range does not contain any relative indices.
        Since:
        4.3
      • originalValue

        public String originalValue()
        Returns the original String value that this range was constructed with.
        Since:
        4.3
      • 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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object