Package groovy.cli

# Annotation Interface 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 multivalued 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 multivalued option. Only allowed for array-typed arguments.
    Returns:
      the value separator for this multivalued 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