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

  - ### description

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

  - ### shortName

    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

    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

    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

    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

    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

    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