
com.pablodomingos.classes.rps.builders.AbstractBuilder Maven / Gradle / Ivy
package com.pablodomingos.classes.rps.builders;
import java.util.HashSet;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Validation;
import javax.validation.Validator;
public abstract class AbstractBuilder {
private static Validator validator =
Validation.buildDefaultValidatorFactory().getValidator();
protected abstract T buildInternal();
public T build() throws ConstraintViolationException {
T object = buildInternal();
Set> violations = validator.validate(object);
if (!violations.isEmpty()) {
Set violationMessages = new HashSet();
for (ConstraintViolation constraintViolation : violations) {
violationMessages.add(constraintViolation.getPropertyPath() + ": " + constraintViolation.getMessage());
}
throw new ConstraintViolationException(violationMessages.toString() , violations);
}
return object;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy