[hibernate-commits] Hibernate SVN: r17391 - in validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation: xml and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Aug 21 07:06:00 EDT 2009


Author: hardy.ferentschik
Date: 2009-08-21 07:06:00 -0400 (Fri, 21 Aug 2009)
New Revision: 17391

Modified:
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/AnnotationIgnores.java
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/xml/XmlMappingParser.java
Log:
fixed some class level orverride logic

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/AnnotationIgnores.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/AnnotationIgnores.java	2009-08-21 11:04:54 UTC (rev 17390)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/AnnotationIgnores.java	2009-08-21 11:06:00 UTC (rev 17391)
@@ -51,7 +51,7 @@
 	 */
 	private final Map<Class<?>, List<Member>> ignoreAnnotationOnMember = new HashMap<Class<?>, List<Member>>();
 
-	private final List<Class<?>> ignoreAnnotationOnClass = new ArrayList<Class<?>>();
+	private final Map<Class<?>, Boolean> ignoreAnnotationOnClass = new HashMap<Class<?>, Boolean>();
 
 	public void setDefaultIgnoreAnnotation(Class<?> clazz, Boolean b) {
 		if ( b == null ) {
@@ -105,12 +105,18 @@
 		log.debug( type + " level annotations are getting ignored for " + clazz.getName() + "." + member.getName() );
 	}
 
-	public void setIgnoreAnnotationsOnClass(Class<?> clazz) {
-		ignoreAnnotationOnClass.add( clazz );
+	public void setIgnoreAnnotationsOnClass(Class<?> clazz, boolean b) {
+		ignoreAnnotationOnClass.put( clazz, b );
 	}
 
 	public boolean isIgnoreAnnotations(Class<?> clazz) {
-		boolean ignoreAnnotation = ignoreAnnotationOnClass.contains( clazz ) || getDefaultIgnoreAnnotation( clazz );
+		boolean ignoreAnnotation;
+		if ( ignoreAnnotationOnClass.containsKey( clazz ) ) {
+			ignoreAnnotation = ignoreAnnotationOnClass.get( clazz );
+		}
+		else {
+			ignoreAnnotation = getDefaultIgnoreAnnotation( clazz );
+		}
 		if ( log.isDebugEnabled() && ignoreAnnotation ) {
 			log.debug( "Class level annotation are getting ignored for " + clazz.getName() );
 		}

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/xml/XmlMappingParser.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/xml/XmlMappingParser.java	2009-08-21 11:04:54 UTC (rev 17390)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/xml/XmlMappingParser.java	2009-08-21 11:06:00 UTC (rev 17391)
@@ -157,7 +157,7 @@
 			if ( !clazz.isAnnotation() ) {
 				throw new ValidationException( annotationClassName + " is not an annotation" );
 			}
-			Class<? extends Annotation> annotationClass = (Class<? extends Annotation>) clazz;
+			Class<? extends Annotation> annotationClass = ( Class<? extends Annotation> ) clazz;
 
 			ValidatedByType validatedByType = constraintDefinition.getValidatedBy();
 			List<Class<? extends ConstraintValidator<? extends Annotation, ?>>> constraintValidatorClasses = new ArrayList<Class<? extends ConstraintValidator<? extends Annotation, ?>>>();
@@ -328,9 +328,8 @@
 		}
 
 		// ignore annotation
-		boolean ignoreClassAnnotation = classType.isIgnoreAnnotations() == null ? false : classType.isIgnoreAnnotations();
-		if ( ignoreClassAnnotation ) {
-			annotationIgnores.setIgnoreAnnotationsOnClass( beanClass );
+		if ( classType.isIgnoreAnnotations() != null ) {
+			annotationIgnores.setIgnoreAnnotationsOnClass( beanClass, classType.isIgnoreAnnotations() );
 		}
 
 		// group sequence
@@ -370,9 +369,11 @@
 
 	private List<Class<?>> createGroupSequence(GroupSequenceType groupSequenceType, String defaultPackage) {
 		List<Class<?>> groupSequence = new ArrayList<Class<?>>();
-		for ( JAXBElement<String> groupName : groupSequenceType.getValue() ) {
-			Class<?> group = getClass( groupName.getValue(), defaultPackage );
-			groupSequence.add( group );
+		if ( groupSequenceType != null ) {
+			for ( JAXBElement<String> groupName : groupSequenceType.getValue() ) {
+				Class<?> group = getClass( groupName.getValue(), defaultPackage );
+				groupSequence.add( group );
+			}
 		}
 		return groupSequence;
 	}



More information about the hibernate-commits mailing list