You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by ro...@apache.org on 2010/05/28 18:39:49 UTC
svn commit: r949224 -
/incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/extensions/MethodValidatorMetaBeanFactory.java
Author: romanstumm
Date: Fri May 28 16:39:48 2010
New Revision: 949224
URL: http://svn.apache.org/viewvc?rev=949224&view=rev
Log:
BVAL-66 merging changes for "Method validation parameter processing problems"
Modified:
incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/extensions/MethodValidatorMetaBeanFactory.java
Modified: incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/extensions/MethodValidatorMetaBeanFactory.java
URL: http://svn.apache.org/viewvc/incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/extensions/MethodValidatorMetaBeanFactory.java?rev=949224&r1=949223&r2=949224&view=diff
==============================================================================
--- incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/extensions/MethodValidatorMetaBeanFactory.java (original)
+++ incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/extensions/MethodValidatorMetaBeanFactory.java Fri May 28 16:39:48 2010
@@ -23,6 +23,7 @@ import org.apache.bval.jsr303.Jsr303Meta
import org.apache.bval.jsr303.util.SecureActions;
import org.apache.bval.model.Validation;
import org.apache.bval.util.AccessStrategy;
+import org.apache.commons.lang.ClassUtils;
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
@@ -97,7 +98,11 @@ public class MethodValidatorMetaBeanFact
AppendValidationToList validations = new AppendValidationToList();
ReturnAccess returnAccess = new ReturnAccess(method.getReturnType());
for (Annotation anno : method.getAnnotations()) {
- processAnnotation(anno, methodDesc, returnAccess, validations);
+ if (anno instanceof Valid) {
+ methodDesc.setCascaded(true);
+ } else {
+ processAnnotation(anno, methodDesc, returnAccess, validations);
+ }
}
methodDesc.getConstraintDescriptors().addAll(validations.getValidations());
@@ -117,13 +122,19 @@ public class MethodValidatorMetaBeanFact
AccessStrategy access, int idx)
throws InvocationTargetException, IllegalAccessException {
AppendValidationToList validations = new AppendValidationToList();
+ boolean cascaded = false;
for (Annotation anno : paramAnnos) {
- processAnnotation(anno, methodDesc, access, validations);
+ if (anno instanceof Valid) {
+ cascaded = true;
+ } else {
+ processAnnotation(anno, methodDesc, access, validations);
+ }
}
ParameterDescriptorImpl paramDesc = new ParameterDescriptorImpl(
methodDesc.getMetaBean(), validations.getValidations().toArray(
new Validation[validations.getValidations().size()]));
paramDesc.setIndex(idx);
+ paramDesc.setCascaded( cascaded );
methodDesc.getParameterDescriptors().add(paramDesc);
}
@@ -139,7 +150,7 @@ public class MethodValidatorMetaBeanFact
Class<? extends ConstraintValidator<?, ?>>[] validatorClasses;
validatorClasses = findConstraintValidatorClasses(annotation, vcAnno);
applyConstraint(annotation, validatorClasses, null,
- desc.getMetaBean().getBeanClass(), access, validations);
+ ClassUtils.primitiveToWrapper((Class)access.getJavaType()), access, validations);
} else {
/**
* Multi-valued constraints