Package groovy.cli

## Annotation Type Option

-     @Documented
      @Retention(RUNTIME)
      @Target({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 | Description
    --- | --- | ---
    `java.lang.Class` | `convert` | A conversion closure to convert the incoming String into the desired object
    `java.lang.String` | `defaultValue` | The default value for this option as a String; subject to type conversion and 'convert'.
    `java.lang.String` | `description` | The description of this option
    `java.lang.String` | `longName` | The long name of this option.
    `int` | `numberOfArguments` | How many arguments this option has.
    `java.lang.String` | `numberOfArgumentsString` | How many arguments this option has represented as a String.
    `boolean` | `optionalArg` | Whether this option can have an optional argument.
    `java.lang.String` | `shortName` | The short name of this option.
    `java.lang.String` | `valueSeparator` | The value separator for this multi-valued option.

- - ### Element Detail

    - #### description

          java.lang.String description

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

  - - #### shortName

          java.lang.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

          java.lang.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

          java.lang.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

          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

          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

          java.lang.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

          java.lang.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

          java.lang.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