All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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