# Annotation Interface Workaround

@Documented @Target({TYPE,CONSTRUCTOR,METHOD,FIELD,LOCAL_VARIABLE}) @Retention(SOURCE) public @interface Workaround
Annotates code containing workarounds for bugs or limitations in an external library. This is marker annotation for source code only, in order to keep trace of code to revisit when new versions of external libraries become available.

## Usage note

When only a portion of a method contains a workaround and the annotation cannot be applied to that specific part, then it is applied to the whole method. Developers need to refer to code comments in order to locate the specific part.

Since:
  0.3

- ## Required Element Summary

  Required Elements
  Modifier and Type
  Required Element
  Description
  `String`
  `library`
  A string identifying the library having a bug or limitation.
  `String`
  `version`
  The last library version on which the bug has been verified.

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String`
  `fixed`
  If the bug has been fixed, the version on which the fix has been applied.

- ## Element Details

  - ### library

    String library
    A string identifying the library having a bug or limitation. Examples: `"JDK"`, `"NetCDF"`, `"JUnit"`, `"SIS"`.
    Returns:
      an identifier of the library having a bug or limitation.

  - ### version

    String version
    The last library version on which the bug has been verified. The bug may have existed before, and may still exist later.
    Returns:
      the library version on which the bug has been observed.

  - ### fixed

    String fixed
    If the bug has been fixed, the version on which the fix has been applied. Otherwise an empty string.
    Returns:
      the library version on which the fix has been applied.
    Default:
      `""`