package org.embulk.config;
import java.util.Set;
import javax.validation.ConstraintViolation;
public class TaskValidationException
extends ConfigException
{
@SuppressWarnings("unchecked")
private final Set violations;
public <T> TaskValidationException(Set<ConstraintViolation<T>> violations)
{
super(formatMessage(violations));
this.violations = violations;
}
@SuppressWarnings("unchecked")
public Set<ConstraintViolation<?>> getViolations()
{
return violations;
}
private static <T> String formatMessage(Set<ConstraintViolation<T>> violations)
{
StringBuilder sb = new StringBuilder();
sb.append("Configuration task validation failed.");
for(ConstraintViolation<T> violation : violations) {
sb.append(" ");
sb.append(violation.getPropertyPath());
sb.append(" ");
sb.append(violation.getMessage());
sb.append(" but got ");
sb.append(violation.getInvalidValue());
}
return sb.toString();
}
}