[hibernate-commits] Hibernate SVN: r19825 - validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Thu Jun 24 17:29:30 EDT 2010
Author: hardy.ferentschik
Date: 2010-06-24 17:29:29 -0400 (Thu, 24 Jun 2010)
New Revision: 19825
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/BeanMetaDataImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintDescriptorImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintHelper.java
Log:
HV-342
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/BeanMetaDataImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/BeanMetaDataImpl.java 2010-06-24 18:51:21 UTC (rev 19824)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/BeanMetaDataImpl.java 2010-06-24 21:29:29 UTC (rev 19825)
@@ -445,10 +445,10 @@
|| constraintHelper.isBuiltinConstraint( annotationType ) ) {
constraints.add( annotation );
}
+ else if ( constraintHelper.isMultiValueConstraint( annotationType ) ) {
+ constraints.addAll( constraintHelper.getMultiValueConstraints( annotation ) );
+ }
- // check if we have a multi-valued constraint
- constraints.addAll( constraintHelper.getMultiValueConstraints( annotation ) );
-
for ( Annotation constraint : constraints ) {
final ConstraintDescriptorImpl constraintDescriptor = buildConstraintDescriptor( clazz, constraint, type );
constraintDescriptors.add( constraintDescriptor );
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintDescriptorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintDescriptorImpl.java 2010-06-24 18:51:21 UTC (rev 19824)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintDescriptorImpl.java 2010-06-24 21:29:29 UTC (rev 19825)
@@ -387,7 +387,7 @@
log.debug( "Adding composing constraint: " + descriptor );
}
}
- else if ( constraintHelper.isMultiValueConstraint( declaredAnnotation ) ) {
+ else if ( constraintHelper.isMultiValueConstraint( declaredAnnotationType ) ) {
List<Annotation> multiValueConstraints = constraintHelper.getMultiValueConstraints( declaredAnnotation );
int index = 0;
for ( Annotation constraintAnnotation : multiValueConstraints ) {
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintHelper.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintHelper.java 2010-06-24 18:51:21 UTC (rev 19824)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validator/metadata/ConstraintHelper.java 2010-06-24 21:29:29 UTC (rev 19825)
@@ -184,38 +184,27 @@
/**
* Checks whether a given annotation is a multi value constraint or not.
*
- * @param annotation the annotation to check.
+ * @param annotationType the annotation type to check.
*
* @return {@code true} if the specified annotation is a multi value constraints, {@code false}
* otherwise.
*/
- public boolean isMultiValueConstraint(Annotation annotation) {
+ public boolean isMultiValueConstraint(Class<? extends Annotation> annotationType) {
boolean isMultiValueConstraint = false;
- try {
- final Method method = ReflectionHelper.getMethod( annotation.getClass(), "value" );
+ final Method method = ReflectionHelper.getMethod( annotationType, "value" );
if ( method != null ) {
Class returnType = method.getReturnType();
if ( returnType.isArray() && returnType.getComponentType().isAnnotation() ) {
- Annotation[] annotations = ( Annotation[] ) method.invoke( annotation );
- for ( Annotation a : annotations ) {
- Class<? extends Annotation> annotationType = a.annotationType();
- if ( isConstraintAnnotation( annotationType ) || isBuiltinConstraint( annotationType ) ) {
- isMultiValueConstraint = true;
- }
- else {
- isMultiValueConstraint = false;
- break;
- }
+ @SuppressWarnings( "unchecked" )
+ Class<? extends Annotation> componentType = ( Class<? extends Annotation> ) returnType.getComponentType();
+ if ( isConstraintAnnotation( componentType ) || isBuiltinConstraint( componentType ) ) {
+ isMultiValueConstraint = true;
}
+ else {
+ isMultiValueConstraint = false;
+ }
}
}
- }
- catch ( IllegalAccessException iae ) {
- // ignore
- }
- catch ( InvocationTargetException ite ) {
- // ignore
- }
return isMultiValueConstraint;
}
More information about the hibernate-commits
mailing list