javax.annotation.RegEx Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vroom Show documentation
Show all versions of vroom Show documentation
Work immutably, robustly and in a knowledge-oriented way with Entity maps in Java.
package javax.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import javax.annotation.meta.TypeQualifierNickname;
import javax.annotation.meta.TypeQualifierValidator;
import javax.annotation.meta.When;
/**
* This qualifier is used to denote String values that should be a Regular
* expression.
*
*/
@Documented
@Syntax("RegEx")
@TypeQualifierNickname
@Retention(RetentionPolicy.RUNTIME)
public @interface RegEx {
When when() default When.ALWAYS;
static class Checker implements TypeQualifierValidator {
public When forConstantValue(RegEx annotation, Object value) {
if (!(value instanceof String))
return When.NEVER;
try {
Pattern.compile((String) value);
} catch (PatternSyntaxException e) {
return When.NEVER;
}
return When.ALWAYS;
}
}
}