package com.blazebit.validation; import com.blazebit.lang.StringUtils; import com.blazebit.lang.ValueRetriever; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Path.Node; import javax.validation.Validation; import javax.validation.Validator; public final class ConstraintValidatorUtils { private ConstraintValidatorUtils() { } public static Validator getValidator() { return Validation.buildDefaultValidatorFactory().getValidator(); } public static <T> boolean containsViolation( Set<ConstraintViolation<T>> violations, String name) { if (name == null) { return false; } for (ConstraintViolation<T> violation : violations) { if (name.equals(StringUtils.join(".", violation.getPropertyPath(), nodeNameValueRetriever))) { return true; } } return false; } private static final ValueRetriever<Node, String> nodeNameValueRetriever = new ValueRetriever<Node, String>() { @Override public String getValue(Node target) { final String name = target.getName(); return name == null ? "" : name; } }; }