package no.niths.common.helpers;
import java.util.List;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import no.niths.application.rest.exception.ObjectNotFoundException;
import no.niths.application.rest.helper.Error;
import no.niths.domain.school.Committee;
import no.niths.domain.school.Student;
/**
* Class used too validate objects
*
*/
public class ValidationHelper {
public static boolean isObjectNull(Object obj) {
if (obj == null) {
throw new ObjectNotFoundException();
}
return false;
}
public static boolean isObjectNull(Object obj, Class<?> clazz) {
if (obj == null) {
throw new ObjectNotFoundException(
buildErrorMsg(clazz, Error.DOES_NOT_EXIST));
}
return false;
}
/**
*
* @param committee
* @param studentLeader
*/
public static boolean isStudentLeaderInCommittee(Committee committee,
Student studentLeader) {
isObjectNull(committee);
if (!(committee.getLeaders().contains(studentLeader))) {
throw new ObjectNotFoundException();
}
return false;
}
public static boolean isListEmpty(
@SuppressWarnings("rawtypes") List list) {
if (list.isEmpty()) {
throw new ObjectNotFoundException();
}
return false;
}
//Returns true if the object has passed bean validation
public static <T> boolean hasObjectValidAttributes(T obj){
ValidatorFactory factory =
Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T>> constraintViolations =
validator.validate(obj);
return (constraintViolations.isEmpty());
}
private static String buildErrorMsg(Class<?> clazz, Error error) {
return String.format("%s %s", clazz.getSimpleName(), error.getMsg());
}
}