groovy.cli

## Annotation Type Option

-     @Documented
       @Retention(value=RUNTIME)
       @Target(value={METHOD,FIELD})
      public @interface Option

  Indicates that a method or property can be used to set a CLI option.

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `Class` | `convert` A conversion closure to convert the incoming String into the desired object
    `String` | `defaultValue` The default value for this option as a String; subject to type conversion and 'convert'.
    `String` | `description` The description of this option
    `String` | `longName` The long name of this option.
    `int` | `numberOfArguments` How many arguments this option has.
    `String` | `numberOfArgumentsString` How many arguments this option has represented as a String.
    `boolean` | `optionalArg` Whether this option can have an optional argument.
    `String` | `shortName` The short name of this option.
    `String` | `valueSeparator` The value separator for this multi-valued option.

- - ### Element Detail

    - #### description

          public abstract String description

      The description of this option
      Returns:
        the description of this option
      Default:
        ""

  - - #### shortName

          public abstract String shortName

      The short name of this option. Defaults to the name of member being annotated if the longName is empty.
      Returns:
        the short name of this option
      Default:
        ""

  - - #### longName

          public abstract String longName

      The long name of this option. Defaults to the name of member being annotated.
      Returns:
        the long name of this option
      Default:
        ""

  - - #### valueSeparator

          public abstract String valueSeparator

      The value separator for this multi-valued option. Only allowed for array-typed arguments.
      Returns:
        the value separator for this multi-valued option
      Default:
        ""

  - - #### optionalArg

          public abstract boolean optionalArg

      Whether this option can have an optional argument. Only supported for array-typed arguments to indicate that the array may be empty.
      Returns:
        true if this array-typed option can have an optional argument (i.e. could be empty)
      Default:
        false

  - - #### numberOfArguments

          public abstract int numberOfArguments

      How many arguments this option has. A value greater than 1 is only allowed for array-typed arguments. Ignored for boolean options which are assumed to have a default of 0 or if `numberOfArgumentsString` is set.
      Returns:
        the number of arguments
      Default:
        1

  - - #### numberOfArgumentsString

          public abstract String numberOfArgumentsString

      How many arguments this option has represented as a String. Only allowed for array-typed arguments. Overrides `numberOfArguments` if set. The special values of '+' means one or more and '*' as 0 or more.
      Returns:
        the number of arguments (as a String)
      Default:
        ""

  - - #### defaultValue

          public abstract String defaultValue

      The default value for this option as a String; subject to type conversion and 'convert'. Ignored for Boolean options.
      Returns:
        the default value for this option
      Default:
        ""

  - - #### convert

          public abstract Class convert

      A conversion closure to convert the incoming String into the desired object
      Returns:
        the closure to convert this option's argument(s)
      Default:
        groovy.transform.Undefined.CLASS.class