JavaSourceFacet javaSourceFacet = getSelectedProject(context).getFacet(JavaSourceFacet.class);
JavaResource javaResource = context.getUIContext().getSelection();
JavaAnnotation constraint = (JavaAnnotation) javaResource.getJavaSource();
// Constraint annotation header
constraint.addAnnotation(Constraint.class).setStringValue("validatedBy = {}");
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\"");