package org.kalipo.validation; import org.apache.commons.lang3.StringUtils; import org.kalipo.domain.Comment; import org.kalipo.repository.CommentRepository; import org.kalipo.repository.ThreadRepository; import org.kalipo.repository.UserRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; /** * Created by damoeb on 21.09.14. */ public class ModelExistsConstraintValidator implements ConstraintValidator<ModelExistsConstraint, String> { private final Logger log = LoggerFactory.getLogger(ModelExistsConstraintValidator.class); @Inject private CommentRepository commentRepository; @Inject private ThreadRepository threadRepository; @Inject private UserRepository userRepository; private Class<?> clazz; @Override public void initialize(ModelExistsConstraint constraintAnnotation) { this.clazz = constraintAnnotation.value(); } @Override public boolean isValid(String id, ConstraintValidatorContext context) { if (StringUtils.isBlank(id)) { return true; } if (clazz == Comment.class) { return commentRepository.exists(id); } if (clazz == org.kalipo.domain.Thread.class) { return threadRepository.exists(id); } if (clazz == org.kalipo.domain.User.class) { return userRepository.exists(id); } log.error(String.format("Class %s is not supported", clazz)); return false; } }