public class User {
@NotNull
@Size(min = 6, max = 16)
private String username;
}
public class UserService {
public void saveUser(User user) {
ValidationResult result = Niaouli.validate(user);
if (result.hasErrors()) {
List<ConstraintViolation> violations = result.getViolations();
for (ConstraintViolation violation : violations) {
System.out.println(violation.getMessage());
}
} else {
// ...
}
}
}
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = EmailValidator.class)
public @interface Email {
String message() default "Invalid email address";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class EmailValidator implements ConstraintValidator<Email, String> {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
return value != null && value.matches("[\\w.-]+@[\\w.-]+");
}
}