constraint.addAnnotation(ReportAsSingleViolation.class);
constraint.addAnnotation(Retention.class).setEnumValue(RUNTIME);
constraint.addAnnotation(Target.class).setEnumValue(METHOD, FIELD, PARAMETER, TYPE, ANNOTATION_TYPE, CONSTRUCTOR);
constraint.addAnnotation(Documented.class);
// Constraint annotation body
constraint.addAnnotationElement("String message() default \"Invalid value\"");
constraint.addAnnotationElement("Class<?>[] groups() default { }");
constraint.addAnnotationElement("Class<? extends Payload>[] payload() default { }");
javaSourceFacet.saveJavaSource(constraint);
}