org.opentestsystem.authoring.testauth.validation.ValidationHelper.java Source code

Java tutorial

Introduction

Here is the source code for org.opentestsystem.authoring.testauth.validation.ValidationHelper.java

Source

/*******************************************************************************
 * Educational Online Test Delivery System
 * Copyright (c) 2013 American Institutes for Research
 * 
 * Distributed under the AIR Open Source License, Version 1.0
 * See accompanying file AIR-License-1_0.txt or at
 * http://www.smarterapp.org/documents/American_Institutes_for_Research_Open_Source_Software_License.pdf
 ******************************************************************************/
package org.opentestsystem.authoring.testauth.validation;

import java.lang.annotation.ElementType;
import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;

import org.hibernate.validator.internal.engine.ConstraintViolationImpl;
import org.hibernate.validator.internal.engine.path.PathImpl;
import org.springframework.validation.Errors;
import org.springframework.validation.FieldError;
import org.springframework.validation.ObjectError;

import com.google.common.collect.Sets;

public final class ValidationHelper {

    private ValidationHelper() {
        // do not instantiate
    }

    @SuppressWarnings("unchecked")
    public static <T> ConstraintViolationException convertErrorsToConstraintException(final T validatedObject,
            final Errors errors) {
        if (errors.hasErrors()) {
            final Set<ConstraintViolation<?>> violations = Sets.newHashSet();
            for (final FieldError error : errors.getFieldErrors()) {
                final ConstraintViolation<T> violation = ConstraintViolationImpl.forBeanValidation(error.getCode(),
                        org.springframework.util.StringUtils.arrayToCommaDelimitedString(error.getArguments()),
                        (Class<T>) validatedObject.getClass(), validatedObject, validatedObject,
                        error.getRejectedValue() == null ? "" : error.getRejectedValue(),
                        PathImpl.createPathFromString(error.getField()), null, ElementType.FIELD);
                violations.add(violation);
            }
            for (final ObjectError error : errors.getGlobalErrors()) {
                final ConstraintViolation<T> violation = ConstraintViolationImpl.forBeanValidation(
                        error.getDefaultMessage(),
                        org.springframework.util.StringUtils.arrayToCommaDelimitedString(error.getArguments()),
                        (Class<T>) validatedObject.getClass(), validatedObject, validatedObject, "",
                        PathImpl.createPathFromString(error.getObjectName()), null, ElementType.TYPE);
                violations.add(violation);
            }
            return new ConstraintViolationException(violations);
        }
        return null;
    }

}