[hibernate-commits] Hibernate SVN: r15638 - in validator/trunk: hibernate-validator/src/main/java/org/hibernate/validation/impl and 3 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Dec 2 09:47:56 EST 2008


Author: epbernard
Date: 2008-12-02 09:47:55 -0500 (Tue, 02 Dec 2008)
New Revision: 15638

Modified:
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java
   validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
   validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java
   validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java
Log:
BVAL-76 add ConstraintViolation getRawMessage() and rename getMessage() to getInterpolatedMessage()

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java	2008-12-02 14:28:28 UTC (rev 15637)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java	2008-12-02 14:47:55 UTC (rev 15638)
@@ -164,13 +164,15 @@
 
 			if ( !constraintDescriptor.getConstraintImplementation().isValid( value, contextImpl ) ) {
 				for ( ConstraintContextImpl.ErrorMessage error : contextImpl.getErrorMessages() ) {
-					String message = messageResolver.interpolate(
-							error.getMessage(),
+					final String message = error.getMessage();
+					String interpolatedMessage = messageResolver.interpolate(
+							message,
 							constraintDescriptor,
 							leafBeanInstance
 					);
 					ConstraintViolationImpl<T> failingConstraintViolation = new ConstraintViolationImpl<T>(
 							message,
+							interpolatedMessage,
 							context.getRootBean(),
 							metaDataProvider.getBeanClass(),
 							leafBeanInstance,
@@ -299,13 +301,15 @@
 				if ( !wrapper.descriptor.getConstraintImplementation().isValid( wrapper.value, contextImpl ) ) {
 
 					for ( ConstraintContextImpl.ErrorMessage error : contextImpl.getErrorMessages() ) {
-						String message = messageResolver.interpolate(
-								error.getMessage(),
+						final String message = error.getMessage();
+						String interpolatedMessage = messageResolver.interpolate(
+								message,
 								wrapper.descriptor,
 								wrapper.value
 						);
 						ConstraintViolationImpl<T> failingConstraintViolation = new ConstraintViolationImpl<T>(
 								message,
+								interpolatedMessage,
 								object,
 								beanType,
 								object,
@@ -366,13 +370,15 @@
 				ConstraintContextImpl contextImpl = new ConstraintContextImpl(constraintDescriptor);
 				if ( !constraintDescriptor.getConstraintImplementation().isValid( object, contextImpl ) ) {
 					for ( ConstraintContextImpl.ErrorMessage error : contextImpl.getErrorMessages() ) {
-						String message = messageResolver.interpolate(
-								error.getMessage(),
+						final String message = error.getMessage();
+						String interpolatedMessage = messageResolver.interpolate(
+								message,
 								constraintDescriptor,
 								object
 						);
 						ConstraintViolationImpl<T> failingConstraintViolation = new ConstraintViolationImpl<T>(
 								message,
+								interpolatedMessage,
 								null,
 								null,
 								null,

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java	2008-12-02 14:28:28 UTC (rev 15637)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/ConstraintViolationImpl.java	2008-12-02 14:47:55 UTC (rev 15638)
@@ -27,7 +27,7 @@
  * @author Hardy Ferentschik
  */
 public class ConstraintViolationImpl<T> implements ConstraintViolation<T> {
-	private String message;
+	private String interpolatedMessage;
 	private T rootBean;
 	private Class<T> beanClass;
 	private Object value;
@@ -35,11 +35,14 @@
 	private HashSet<String> groups;
 	private Object leafBeanInstance;
 	private final ConstraintDescriptor constraintDescriptor;
+	private String rawMessage;
 
 
-	public ConstraintViolationImpl(String message, T rootBean, Class<T> beanClass, Object leafBeanInstance, Object value,
+	public ConstraintViolationImpl(String rawMessage, String interpolatedMessage, T rootBean, Class<T> beanClass,
+								   Object leafBeanInstance, Object value,
 								   String propertyPath, String group, ConstraintDescriptor constraintDescriptor) {
-		this.message = message;
+		this.rawMessage = rawMessage;
+		this.interpolatedMessage = interpolatedMessage;
 		this.rootBean = rootBean;
 		this.beanClass = beanClass;
 		this.value = value;
@@ -53,10 +56,14 @@
 	/**
 	 * {@inheritDoc}
 	 */
-	public String getMessage() {
-		return message;
+	public String getInterpolatedMessage() {
+		return interpolatedMessage;
 	}
 
+	public String getRawMessage() {
+		return rawMessage;
+	}
+
 	/**
 	 * {@inheritDoc}
 	 */
@@ -118,7 +125,7 @@
 		if ( beanClass != null ? !beanClass.equals( that.beanClass ) : that.beanClass != null ) {
 			return false;
 		}
-		if ( message != null ? !message.equals( that.message ) : that.message != null ) {
+		if ( interpolatedMessage != null ? !interpolatedMessage.equals( that.interpolatedMessage ) : that.interpolatedMessage != null ) {
 			return false;
 		}
 		if ( propertyPath != null ? !propertyPath.equals( that.propertyPath ) : that.propertyPath != null ) {
@@ -136,7 +143,7 @@
 
 	@Override
 	public int hashCode() {
-		int result = message != null ? message.hashCode() : 0;
+		int result = interpolatedMessage != null ? interpolatedMessage.hashCode() : 0;
 		result = 31 * result + ( rootBean != null ? rootBean.hashCode() : 0 );
 		result = 31 * result + ( beanClass != null ? beanClass.hashCode() : 0 );
 		result = 31 * result + ( value != null ? value.hashCode() : 0 );

Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java	2008-12-02 14:28:28 UTC (rev 15637)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/bootstrap/ValidationTest.java	2008-12-02 14:47:55 UTC (rev 15638)
@@ -108,7 +108,7 @@
 		Set<ConstraintViolation<Customer>> constraintViolations = validator.validate( customer );
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
 		ConstraintViolation<Customer> constraintViolation = constraintViolations.iterator().next();
-		assertEquals( "Wrong message", "may not be null", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "may not be null", constraintViolation.getInterpolatedMessage() );
 
 		//FIXME nothing guarantee that a builder can be reused
 		// now we modify the builder, get a new factory and valiator and try again
@@ -128,7 +128,7 @@
 		constraintViolations = validator.validate( customer );
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
 		constraintViolation = constraintViolations.iterator().next();
-		assertEquals( "Wrong message", "my custom message", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "my custom message", constraintViolation.getInterpolatedMessage() );
 	}
 
 	@Test
@@ -146,7 +146,7 @@
 		Set<ConstraintViolation<Customer>> constraintViolations = validator.validate( customer );
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
 		ConstraintViolation<Customer> constraintViolation = constraintViolations.iterator().next();
-		assertEquals( "Wrong message", "may not be null", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "may not be null", constraintViolation.getInterpolatedMessage() );
 
 		//FIXME nothing guarantee that a builder can be reused
 		// now we modify the builder, get a new factory and valiator and try again

Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java	2008-12-02 14:28:28 UTC (rev 15637)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ValidatorImplTest.java	2008-12-02 14:47:55 UTC (rev 15638)
@@ -132,7 +132,7 @@
 		constraintViolations = validator.validate( book, "first", "second", "last" );
 		ConstraintViolation constraintViolation = constraintViolations.iterator().next();
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
-		assertEquals( "Wrong message", "may not be empty", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "may not be empty", constraintViolation.getInterpolatedMessage() );
 		assertEquals( "Wrong bean class", Book.class, constraintViolation.getBeanClass() );
 		assertEquals( "Wrong root entity", book, constraintViolation.getRootBean() );
 		assertEquals( "Wrong value", book.getTitle(), constraintViolation.getInvalidValue() );
@@ -144,7 +144,7 @@
 		constraintViolations = validator.validate( book, "first", "second", "last" );
 		constraintViolation = constraintViolations.iterator().next();
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
-		assertEquals( "Wrong message", "length must be between 0 and 30", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "length must be between 0 and 30", constraintViolation.getInterpolatedMessage() );
 		assertEquals( "Wrong bean class", Book.class, constraintViolation.getBeanClass() );
 		assertEquals( "Wrong root entity", book, constraintViolation.getRootBean() );
 		assertEquals( "Wrong value", book.getSubtitle(), constraintViolation.getInvalidValue() );
@@ -156,7 +156,7 @@
 		constraintViolations = validator.validate( book, "first", "second", "last" );
 		constraintViolation = constraintViolations.iterator().next();
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
-		assertEquals( "Wrong message", "length must be between 0 and 20", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "length must be between 0 and 20", constraintViolation.getInterpolatedMessage() );
 		assertEquals( "Wrong bean class", Author.class, constraintViolation.getBeanClass() );
 		assertEquals( "Wrong root entity", book, constraintViolation.getRootBean() );
 		assertEquals( "Wrong value", author.getCompany(), constraintViolation.getInvalidValue() );
@@ -187,7 +187,7 @@
 		constraintViolations = validator.validate( book, "default" );
 		ConstraintViolation constraintViolation = constraintViolations.iterator().next();
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
-		assertEquals( "Wrong message", "may not be null", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "may not be null", constraintViolation.getInterpolatedMessage() );
 		assertEquals( "Wrong bean class", Book.class, constraintViolation.getBeanClass() );
 		assertEquals( "Wrong root entity", book, constraintViolation.getRootBean() );
 		assertEquals( "Wrong value", book.getTitle(), constraintViolation.getInvalidValue() );
@@ -329,7 +329,7 @@
 		constraintViolations = validator.validate( customer );
 		ConstraintViolation constraintViolation = constraintViolations.iterator().next();
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
-		assertEquals( "Wrong message", "may not be null", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "may not be null", constraintViolation.getInterpolatedMessage() );
 		assertEquals( "Wrong bean class", Order.class, constraintViolation.getBeanClass() );
 		assertEquals( "Wrong root entity", customer, constraintViolation.getRootBean() );
 		assertEquals( "Wrong value", order1.getOrderNumber(), constraintViolation.getInvalidValue() );
@@ -381,7 +381,7 @@
 		Set<ConstraintViolation<Actor>> constraintViolations = validator.validate( clint );
 		ConstraintViolation constraintViolation = constraintViolations.iterator().next();
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
-		assertEquals( "Wrong message", "may not be empty", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "may not be empty", constraintViolation.getInterpolatedMessage() );
 		assertEquals( "Wrong bean class", Actor.class, constraintViolation.getBeanClass() );
 		assertEquals( "Wrong root entity", clint, constraintViolation.getRootBean() );
 		assertEquals( "Wrong value", morgan.getLastName(), constraintViolation.getInvalidValue() );
@@ -401,7 +401,7 @@
 
 		ConstraintViolation constraintViolation = constraintViolations.iterator().next();
 		assertEquals( "Wrong number of constraints", 1, constraintViolations.size() );
-		assertEquals( "Wrong message", "may not be null", constraintViolation.getMessage() );
+		assertEquals( "Wrong message", "may not be null", constraintViolation.getInterpolatedMessage() );
 		assertEquals( "Wrong bean class", null, constraintViolation.getBeanClass() );
 		assertEquals( "Wrong root entity", null, constraintViolation.getRootBean() );
 		assertEquals( "Wrong value", order.getOrderNumber(), constraintViolation.getInvalidValue() );

Modified: validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java
===================================================================
--- validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java	2008-12-02 14:28:28 UTC (rev 15637)
+++ validator/trunk/validation-api/src/main/java/javax/validation/ConstraintViolation.java	2008-12-02 14:47:55 UTC (rev 15638)
@@ -29,11 +29,16 @@
 public interface ConstraintViolation<T> {
 
 	/**
-	 * @return The error message for this constraint violation.
+	 * @return The interpolated error message for this constraint violation.
 	 */
-	String getMessage();
+	String getInterpolatedMessage();
 
 	/**
+	 * @return The non-interpolated error message for this constraint violation.
+	 */
+	String getRawMessage();
+
+	/**
 	 * @return The root bean being validated.
 	 */
 	T getRootBean();




More information about the hibernate-commits mailing list