Syntax
Date: 2016-03-08

javax.annotation

## Annotation Type Syntax

-     @Documented
      @TypeQualifier(applicableTo=java.lang.CharSequence.class)
      @Retention(value=RUNTIME)
      public @interface Syntax

  This annotation a value that is of a particular syntax, such as Java syntax or regular expression syntax. This can be used to provide syntax checking of constant values at compile time, run time checking at runtime, and can assist IDEs in deciding how to interpret String constants (e.g., should a refactoring that renames method x() to y() update the String constant "x()").

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `java.lang.String` | `value` Value indicating the particular syntax denoted by this annotation.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `When` | `when`

- - ### Element Detail

    - #### value

          public abstract java.lang.String value

      Value indicating the particular syntax denoted by this annotation. Different tools will recognize different syntaxes, but some proposed canonical values are:
      - "Java"
      - "RegEx"
      - "JavaScript"
      - "Ruby"
      - "Groovy"
      - "SQL"
      - "FormatString"
      Syntax names can be followed by a colon and a list of key value pairs, separated by commas. For example, "SQL:dialect=Oracle,version=2.3". Tools should ignore any keys they don't recognize.

    - #### when

          public abstract When when

      Default:
        javax.annotation.meta.When.ALWAYS