[hibernate-commits] Hibernate SVN: r17096 - validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine and 1 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Jul 15 08:28:36 EDT 2009
Author: hardy.ferentschik
Date: 2009-07-15 08:28:36 -0400 (Wed, 15 Jul 2009)
New Revision: 17096
Modified:
beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/ValidationRequirementTest.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintViolationImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/GlobalExecutionContext.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/LocalExecutionContext.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/MetaConstraint.java
Log:
Enabled test and made sure that if both field and property get annotated two constraint violations get crearted.
Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/ValidationRequirementTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/ValidationRequirementTest.java 2009-07-15 11:54:34 UTC (rev 17095)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/application/ValidationRequirementTest.java 2009-07-15 12:28:36 UTC (rev 17096)
@@ -108,7 +108,7 @@
assertCorrectNumberOfViolations( violations, 0 );
}
- @Test(enabled = false)
+ @Test
@SpecAssertions({
@SpecAssertion(section = "3.1.2", id = "a"),
@SpecAssertion(section = "3.1.2", id = "b")
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintViolationImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintViolationImpl.java 2009-07-15 11:54:34 UTC (rev 17095)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintViolationImpl.java 2009-07-15 12:28:36 UTC (rev 17096)
@@ -17,6 +17,7 @@
*/
package org.hibernate.validation.engine;
+import java.lang.annotation.ElementType;
import javax.validation.ConstraintViolation;
import javax.validation.Path;
import javax.validation.metadata.ConstraintDescriptor;
@@ -34,11 +35,12 @@
private final ConstraintDescriptor constraintDescriptor;
private final String rawMessage;
private final Class<T> rootBeanClass;
+ private final ElementType elementType;
public ConstraintViolationImpl(String messageTemplate, String interpolatedMessage, Class<T> rootBeanClass,
T rootBean, Object leafBeanInstance, Object value,
- Path propertyPath, ConstraintDescriptor constraintDescriptor) {
+ Path propertyPath, ConstraintDescriptor constraintDescriptor, ElementType elementType) {
this.rawMessage = messageTemplate;
this.interpolatedMessage = interpolatedMessage;
this.rootBean = rootBean;
@@ -47,6 +49,7 @@
this.leafBeanInstance = leafBeanInstance;
this.constraintDescriptor = constraintDescriptor;
this.rootBeanClass = rootBeanClass;
+ this.elementType = elementType;
}
public String getMessage() {
@@ -105,6 +108,9 @@
if ( leafBeanInstance != null ? !leafBeanInstance.equals( that.leafBeanInstance ) : that.leafBeanInstance != null ) {
return false;
}
+ if ( elementType != null ? !elementType.equals( that.elementType ) : that.elementType != null ) {
+ return false;
+ }
if ( value != null ? !value.equals( that.value ) : that.value != null ) {
return false;
}
@@ -119,6 +125,7 @@
result = 31 * result + ( rootBean != null ? rootBean.hashCode() : 0 );
result = 31 * result + ( leafBeanInstance != null ? leafBeanInstance.hashCode() : 0 );
result = 31 * result + ( value != null ? value.hashCode() : 0 );
+ result = 31 * result + ( elementType != null ? elementType.hashCode() : 0 );
return result;
}
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/GlobalExecutionContext.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/GlobalExecutionContext.java 2009-07-15 11:54:34 UTC (rev 17095)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/GlobalExecutionContext.java 2009-07-15 12:28:36 UTC (rev 17096)
@@ -159,7 +159,8 @@
localContext.getCurrentBean(),
localContext.getCurrentValidatedValue(),
error.getPath(),
- descriptor
+ descriptor,
+ localContext.getElementType()
);
}
@@ -196,6 +197,7 @@
}
private void addConstraintFailure(ConstraintViolation<T> failingConstraintViolation) {
+ // NOTE: we are relying on the fact that ConstraintViolation.equals() is implemented correctly.
int i = failingConstraintViolations.indexOf( failingConstraintViolation );
if ( i == -1 ) {
failingConstraintViolations.add( failingConstraintViolation );
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/LocalExecutionContext.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/LocalExecutionContext.java 2009-07-15 11:54:34 UTC (rev 17095)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/LocalExecutionContext.java 2009-07-15 12:28:36 UTC (rev 17096)
@@ -17,6 +17,7 @@
*/
package org.hibernate.validation.engine;
+import java.lang.annotation.ElementType;
import javax.validation.groups.Default;
/**
@@ -51,6 +52,11 @@
*/
private V currentValue;
+ /**
+ * The {@code ElementType} the constraint was defined on
+ */
+ private ElementType elementType;
+
public static <T, V> LocalExecutionContext<T, V> getLocalExecutionContext(T value) {
@SuppressWarnings("unchecked")
Class<T> rootBeanClass = ( Class<T> ) value.getClass();
@@ -106,14 +112,25 @@
return getCurrentGroup() != null && getCurrentGroup().getName().equals( Default.class.getName() );
}
+ public ElementType getElementType() {
+ return elementType;
+ }
+
+ public void setElementType(ElementType elementType) {
+ this.elementType = elementType;
+ }
+
@Override
public String toString() {
- return "LocalExecutionContext{" +
- "currentBean=" + currentBean +
- ", currentBeanType=" + currentBeanType +
- ", propertyPath=" + propertyPath +
- ", currentGroup=" + currentGroup +
- ", currentValue=" + currentValue +
- '}';
+ final StringBuilder sb = new StringBuilder();
+ sb.append( "LocalExecutionContext" );
+ sb.append( "{currentBean=" ).append( currentBean );
+ sb.append( ", currentBeanType=" ).append( currentBeanType );
+ sb.append( ", propertyPath=" ).append( propertyPath );
+ sb.append( ", currentGroup=" ).append( currentGroup );
+ sb.append( ", currentValue=" ).append( currentValue );
+ sb.append( ", elementType=" ).append( elementType );
+ sb.append( '}' );
+ return sb.toString();
}
}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/MetaConstraint.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/MetaConstraint.java 2009-07-15 11:54:34 UTC (rev 17095)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/metadata/MetaConstraint.java 2009-07-15 12:28:36 UTC (rev 17096)
@@ -123,6 +123,7 @@
public <T, U, V> boolean validateConstraint(GlobalExecutionContext<T> executionContext, LocalExecutionContext<U, V> localExecutionContext) {
List<ConstraintViolation<T>> constraintViolations = new ArrayList<ConstraintViolation<T>>();
+ localExecutionContext.setElementType( elementType );
constraintTree.validateConstraints(
typeOfAnnoatedElement(), executionContext, localExecutionContext, constraintViolations
);
More information about the hibernate-commits
mailing list