package javax.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import javax.annotation.meta.TypeQualifier;
import javax.annotation.meta.When;
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()"
). /**
* 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 {@code x()} to {@code y()}
* update the String constant {@code "x()"}).
*/
@Documented
@TypeQualifier(applicableTo = CharSequence.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface Syntax {
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.
Returns: a name indicating the particular syntax.
/**
* Value indicating the particular syntax denoted by this annotation.
* Different tools will recognize different syntaxes, but some proposed
* canonical values are:
* <ul>
* <li> "Java"
* <li> "RegEx"
* <li> "JavaScript"
* <li> "Ruby"
* <li> "Groovy"
* <li> "SQL"
* <li> "FormatString"
* </ul>
* <p>
* 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.
*
* @return a name indicating the particular syntax.
*/
String value();
When when() default When.ALWAYS;
}