javax.validation.Validator#unwrap ( )源码实例Demo

下面列出了javax.validation.Validator#unwrap ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: lams   文件: MethodValidationInterceptor.java
@SuppressWarnings("deprecation")
public static Object invokeWithinValidation(MethodInvocation invocation, Validator validator, Class<?>[] groups)
		throws Throwable {

	org.hibernate.validator.method.MethodValidator methodValidator =
			validator.unwrap(org.hibernate.validator.method.MethodValidator.class);
	Set<org.hibernate.validator.method.MethodConstraintViolation<Object>> result =
			methodValidator.validateAllParameters(
					invocation.getThis(), invocation.getMethod(), invocation.getArguments(), groups);
	if (!result.isEmpty()) {
		throw new org.hibernate.validator.method.MethodConstraintViolationException(result);
	}
	Object returnValue = invocation.proceed();
	result = methodValidator.validateReturnValue(
			invocation.getThis(), invocation.getMethod(), returnValue, groups);
	if (!result.isEmpty()) {
		throw new org.hibernate.validator.method.MethodConstraintViolationException(result);
	}
	return returnValue;
}
 
@SuppressWarnings("deprecation")
public static Object invokeWithinValidation(MethodInvocation invocation, Validator validator, Class<?>[] groups)
		throws Throwable {

	org.hibernate.validator.method.MethodValidator methodValidator =
			validator.unwrap(org.hibernate.validator.method.MethodValidator.class);
	Set<org.hibernate.validator.method.MethodConstraintViolation<Object>> result =
			methodValidator.validateAllParameters(
					invocation.getThis(), invocation.getMethod(), invocation.getArguments(), groups);
	if (!result.isEmpty()) {
		throw new org.hibernate.validator.method.MethodConstraintViolationException(result);
	}
	Object returnValue = invocation.proceed();
	result = methodValidator.validateReturnValue(
			invocation.getThis(), invocation.getMethod(), returnValue, groups);
	if (!result.isEmpty()) {
		throw new org.hibernate.validator.method.MethodConstraintViolationException(result);
	}
	return returnValue;
}
 
/**
 * Set the JSR-303 Validator to delegate to for validating methods.
 * <p>Default is the default ValidatorFactory's default Validator.
 */
public void setValidator(Validator validator) {
	// Unwrap to the native Validator with forExecutables support
	if (validator instanceof LocalValidatorFactoryBean) {
		this.validator = ((LocalValidatorFactoryBean) validator).getValidator();
	}
	else if (validator instanceof SpringValidatorAdapter) {
		this.validator = validator.unwrap(Validator.class);
	}
	else {
		this.validator = validator;
	}
}
 
/**
 * Set the JSR-303 Validator to delegate to for validating methods.
 * <p>Default is the default ValidatorFactory's default Validator.
 */
public void setValidator(Validator validator) {
	// Unwrap to the native Validator with forExecutables support
	if (validator instanceof LocalValidatorFactoryBean) {
		this.validator = ((LocalValidatorFactoryBean) validator).getValidator();
	}
	else if (validator instanceof SpringValidatorAdapter) {
		this.validator = validator.unwrap(Validator.class);
	}
	else {
		this.validator = validator;
	}
}
 
源代码5 项目: lams   文件: MethodValidationPostProcessor.java
/**
 * Set the JSR-303 Validator to delegate to for validating methods.
 * <p>Default is the default ValidatorFactory's default Validator.
 */
public void setValidator(Validator validator) {
	// Unwrap to the native Validator with forExecutables support
	if (validator instanceof LocalValidatorFactoryBean) {
		this.validator = ((LocalValidatorFactoryBean) validator).getValidator();
	}
	else if (validator instanceof SpringValidatorAdapter) {
		this.validator = validator.unwrap(Validator.class);
	}
	else {
		this.validator = validator;
	}
}