package de.flower.common.validation.spring;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
/**
* Validator for testing unique constraints.
*/
public class BeanAssertValidator implements ConstraintValidator<BeanAssert, Object> {
private static final Logger LOG = LoggerFactory.getLogger(BeanAssertValidator.class);
private BeanAssert constraint;
private IBeanValidator beanValidator;
@Autowired
private ApplicationContext applicationContext;
@Override
public void initialize(final BeanAssert constraint) {
this.constraint = constraint;
beanValidator = (IBeanValidator) applicationContext.getBean(constraint.beanClass());
}
@Override
public boolean isValid(final Object bean, final ConstraintValidatorContext context) {
LOG.debug("Validating bean [{}] against constraint [{}].", bean, constraint);
return beanValidator.isValid(bean);
}
}