Say I make rest service with Spring.
Say I need custom validator wich is applied to whole type/class i.e. @Target({ElementType.TYPE}). Validator has pretty clumsy logic which cannot be reduced to subvalidators or field-validators.
So sometimes it is rather difficult to understand what exactly is wrong and I need to add different error messages.
I can't get how to do that. Is it possible?
For example like:
public class ReportConstraintValidator implements ConstraintValidator<ValidReport, Report> {
@Autowired
DesignRepository designRepository;
@Override
public void initialize(ValidReport constraintAnnotation) {
}
@Override
public boolean isValid(Report report, ConstraintValidatorContext context) {
...
// here goes "foo error message"
return false;
...
// here goes "bar error message"
return false;
}
}
Solved as M.Denium proposed
public class ReportConstraintValidator implements ConstraintValidator<ValidReport, Report> {
@Autowired
DesignRepository designRepository;
@Override
public void initialize(ValidReport constraintAnnotation) {
}
@Override
public boolean isValid(Report report, ConstraintValidatorContext context) {
...
context.buildConstraintViolationWithTemplate("foo error message").addConstraintViolation();
return false;
...
context.buildConstraintViolationWithTemplate("foo error message").addConstraintViolation();
return false;
}
}