[hibernate-commits] Hibernate SVN: r17400 - validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Aug 24 07:53:38 EDT 2009
Author: hardy.ferentschik
Date: 2009-08-24 07:53:38 -0400 (Mon, 24 Aug 2009)
New Revision: 17400
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/BeanMetaDataImpl.java
Log:
HV-209
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/BeanMetaDataImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/BeanMetaDataImpl.java 2009-08-24 11:48:21 UTC (rev 17399)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/BeanMetaDataImpl.java 2009-08-24 11:53:38 UTC (rev 17400)
@@ -159,7 +159,8 @@
metaConstraint.getPropertyName()
);
if ( propertyDescriptor == null ) {
- propertyDescriptor = addPropertyDescriptorForMember( metaConstraint.getMember() );
+ Member member = metaConstraint.getMember();
+ propertyDescriptor = addPropertyDescriptorForMember( member, isValidAnnotationPresent( member ) );
}
propertyDescriptor.addConstraintDescriptor( metaConstraint.getDescriptor() );
}
@@ -167,6 +168,7 @@
public void addCascadedMember(Member member) {
cascadedMembers.add( member );
+ addPropertyDescriptorForMember( member, true );
}
public PropertyDescriptor getPropertyDescriptor(String property) {
@@ -289,23 +291,26 @@
if ( Modifier.isStatic( field.getModifiers() ) ) {
continue;
}
+
+ if ( annotationIgnores.isIgnoreAnnotations( field ) ) {
+ continue;
+ }
+
String name = ReflectionHelper.getPropertyName( field );
if ( name != null ) {
propertyNames.add( name );
}
+
List<ConstraintDescriptorImpl<?>> fieldMetadata = findConstraints( field );
for ( ConstraintDescriptorImpl<?> constraintDescription : fieldMetadata ) {
- if ( annotationIgnores.isIgnoreAnnotations( field ) ) {
- break;
- }
setAccessibility( field );
MetaConstraint<T, ?> metaConstraint = createMetaConstraint( field, constraintDescription );
addMetaConstraint( clazz, metaConstraint );
}
+
if ( field.isAnnotationPresent( Valid.class ) ) {
setAccessibility( field );
- cascadedMembers.add( field );
- addPropertyDescriptorForMember( field );
+ addCascadedMember( field );
}
}
}
@@ -335,6 +340,11 @@
if ( Modifier.isStatic( method.getModifiers() ) ) {
continue;
}
+
+ if ( annotationIgnores.isIgnoreAnnotations( method ) ) {
+ continue;
+ }
+
String name = ReflectionHelper.getPropertyName( method );
if ( name != null ) {
propertyNames.add( name );
@@ -342,22 +352,18 @@
List<ConstraintDescriptorImpl<?>> methodMetadata = findConstraints( method );
for ( ConstraintDescriptorImpl<?> constraintDescription : methodMetadata ) {
- if ( annotationIgnores.isIgnoreAnnotations( method ) ) {
- break;
- }
setAccessibility( method );
MetaConstraint<T, ?> metaConstraint = createMetaConstraint( method, constraintDescription );
addMetaConstraint( clazz, metaConstraint );
}
if ( method.isAnnotationPresent( Valid.class ) ) {
setAccessibility( method );
- cascadedMembers.add( method );
- addPropertyDescriptorForMember( method );
+ addCascadedMember( method );
}
}
}
- private PropertyDescriptorImpl addPropertyDescriptorForMember(Member member) {
+ private PropertyDescriptorImpl addPropertyDescriptorForMember(Member member, boolean isCascaded) {
String name = ReflectionHelper.getPropertyName( member );
PropertyDescriptorImpl propertyDescriptor = ( PropertyDescriptorImpl ) propertyDescriptors.get(
name
@@ -365,7 +371,7 @@
if ( propertyDescriptor == null ) {
propertyDescriptor = new PropertyDescriptorImpl(
ReflectionHelper.getType( member ),
- ( ( AnnotatedElement ) member ).isAnnotationPresent( Valid.class ),
+ isCascaded,
name
);
propertyDescriptors.put( name, propertyDescriptor );
@@ -373,6 +379,10 @@
return propertyDescriptor;
}
+ private boolean isValidAnnotationPresent(Member member) {
+ return ( ( AnnotatedElement ) member ).isAnnotationPresent( Valid.class );
+ }
+
private void initClassConstraints(Class<?> clazz, AnnotationIgnores annotationIgnores) {
if ( annotationIgnores.isIgnoreAnnotations( clazz ) ) {
return;
More information about the hibernate-commits
mailing list