Package com.yourpackagename.framework.validation

Source Code of com.yourpackagename.framework.validation.EntityValidator

package com.yourpackagename.framework.validation;

import org.apache.commons.lang.WordUtils;
import org.hibernate.validator.HibernateValidator;
import org.hibernate.validator.HibernateValidatorConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.*;

/**
* Method to commonly validate the Spring and Hibernate
* entity constraints on an object passed
*
* @author: Y Kamesh Rao
* @created: 11/3/11 10:53 AM
* @company: © 2011-12, Kaleidosoft Labs
*/
public class EntityValidator<T> {
   
    private Logger log = LoggerFactory.getLogger(EntityValidator.class);

    /**
     * Validate the T object
     *
     * @param bean
     * @return
     */
    public Validity validate(T bean, Class<T> beanClass) {
        HashSet<String> err = new HashSet<String>();
        ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
        Validator validator = validatorFactory.getValidator();

        Set<ConstraintViolation<T>> violations = validator.validate(bean);
        for (ConstraintViolation<T> violation : violations) {
            String propertyPath = violation.getPropertyPath().toString().toLowerCase();
            String message = violation.getMessage();
            String errMsg = WordUtils.capitalize(propertyPath) + " " + message;

            log.error("Invalid Value: '" + errMsg);
            err.add(errMsg);
        }

        // Checking for hibernate validations
        err.addAll(hValidate(bean, beanClass));

        List result = new ArrayList(err);
        return new Validity(result.isEmpty(), result);
    }


    /**
     * Validate the passed bean using the hibernate application level
     * validation
     *
     * @param bean
     * @param beanClass
     * @return
     */
    public HashSet<String> hValidate(T bean, Class<T> beanClass) {
        HashSet<String> err = new HashSet<String>();
        HibernateValidatorConfiguration config = Validation.byProvider(HibernateValidator.class).configure();
        Validator validator = config.buildValidatorFactory().getValidator();

        Set<ConstraintViolation<T>> hErrs = validator.validate(bean);
        log.info("Hibernate Validity Errors: " + hErrs.size());

        for (ConstraintViolation<T> violation : hErrs) {
            String propertyPath = violation.getPropertyPath().toString().toLowerCase();
            String message = violation.getMessage();
            String errMsg = WordUtils.capitalize(propertyPath) + " " + message;

            log.info("Invalid Value: '" + errMsg);
            err.add(errMsg);
        }


        return err;
    }
}
TOP

Related Classes of com.yourpackagename.framework.validation.EntityValidator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.