-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathValidatorService.java
More file actions
29 lines (25 loc) · 1.05 KB
/
Copy pathValidatorService.java
File metadata and controls
29 lines (25 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.example.cw.services;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.ValidatorFactory;
import java.util.Arrays;
import java.util.Set;
public class ValidatorService {
private final ValidatorFactory factory;
public ValidatorService(ValidatorFactory factory) {
this.factory = factory;
}
public void validateMethod(BusinessService service, String method, Object[] values) {
Class<?>[] classes = Arrays.stream(values).map(Object::getClass).toArray(Class[]::new);
try {
Set<ConstraintViolation<BusinessService>> constraintViolations =
factory.getValidator().forExecutables()
.validateParameters(service, service.getClass().getMethod(method, classes), values);
if(constraintViolations.size()!=0) {
throw new ConstraintViolationException(constraintViolations);
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
}