Package org.eclipse.mat.query.annotations

# Annotation Type Argument

@Target(FIELD) @Retention(RUNTIME) public @interface Argument
Annotates a member variable to be an query argument. Memory Analyzer queries implementing `IQuery` use @Argument to annotate query arguments. `advice()`, `Argument.Advice`, `isMandatory()` and `flag()` can be used to further describe arguments. Heap dump providers using implementations of `IHeapDumpProvider` and subclasses of `VmInfo` can use @Argument to annotate extra arguments.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`Argument.Advice`
Optional advice for the query argument that is needed if the declaring type does not give enough evidence how to convert or validate this argument.

## Optional Element Summary

Optional Elements
Modifier and Type
Optional Element
Description
`Argument.Advice`
`advice`
If needed, the type of the argument.
`String`
`flag`
The name of the flag, used for query arguments table and for specifying command line arguments.
`boolean`
`isMandatory`
Indicates whether the argument is mandatory (default)

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`UNFLAGGED`
A constant for the `flag()` annotation parameter to show that for a command line query no flag should be specified before the argument.

## Field Details

### UNFLAGGED

static final String UNFLAGGED
A constant for the `flag()` annotation parameter to show that for a command line query no flag should be specified before the argument. For a query dialog the field name without a leading dash is used as the argument name.

Since:
  1.0
See Also:
  - Constant Field Values

## Element Details

### flag

String flag
The name of the flag, used for query arguments table and for specifying command line arguments. The default, "", means use the name of the argument field. `UNFLAGGED` or "none" means for the command line query no flag should be specified before the argument.

Returns:
  the name of the flag

Default:
  `""`

### isMandatory

boolean isMandatory
Indicates whether the argument is mandatory (default)

Returns:
  true of the argument is mandatory

Default:
  `true`

### advice

Argument.Advice advice
If needed, the type of the argument.

Returns:
  the type

Default:
  `NONE`