java.javax.annotation.Syntax Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of guava Show documentation
Show all versions of guava Show documentation
Libraries for Elasticsearch
The newest version!
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 {@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.
*
* @return a name indicating the particular syntax.
*/
String value();
When when() default When.ALWAYS;
}