Class CommandLine.Range

  • All Implemented Interfaces:
    java.lang.Comparable<CommandLine.Range>
    Enclosing class:
    CommandLine

    public static class CommandLine.Range
    extends java.lang.Object
    implements java.lang.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 
      Modifier and Type Field Description
      boolean isVariable  
      int max
      Maximum accepted number of parameters for an option or positional parameter.
      int min
      Required number of parameters for an option or positional parameter.
    • Constructor Summary

      Constructors 
      Constructor Description
      Range​(int min, int max, boolean variable, boolean unspecified, java.lang.String originalValue)
      Constructs a new Range object with the specified parameters.
    • Field Detail

      • min

        public final int min
        Required number of parameters for an option or positional parameter.
      • max

        public final int max
        Maximum accepted number of parameters for an option or positional parameter.
      • isVariable

        public final boolean isVariable
    • Constructor Detail

      • Range

        public Range​(int min,
                     int max,
                     boolean variable,
                     boolean unspecified,
                     java.lang.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​(java.lang.reflect.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​(java.lang.reflect.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​(java.lang.reflect.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​(java.lang.reflect.Field field)
        Returns the default arity Range: 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

        public static CommandLine.Range defaultArity​(java.lang.Class<?> type)
        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​(java.lang.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
      • 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​(java.lang.Object object)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object