From 96b11d0213bc2012a72832feb5732b6ad1aacf1b Mon Sep 17 00:00:00 2001 From: Henri Sara Date: Sun, 18 Dec 2011 11:35:08 +0200 Subject: Fix BeanValidation license information and make it serializable. --- .../vaadin/data/validator/BeanValidationForm.java | 4 ++ .../data/validator/BeanValidationValidator.java | 55 +++++++++++++--------- 2 files changed, 37 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/com/vaadin/data/validator/BeanValidationForm.java b/src/com/vaadin/data/validator/BeanValidationForm.java index ca94fd33f6..4e13396b1f 100644 --- a/src/com/vaadin/data/validator/BeanValidationForm.java +++ b/src/com/vaadin/data/validator/BeanValidationForm.java @@ -1,3 +1,7 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + package com.vaadin.data.validator; import java.util.Collection; diff --git a/src/com/vaadin/data/validator/BeanValidationValidator.java b/src/com/vaadin/data/validator/BeanValidationValidator.java index 379dcf547c..c0e27e8375 100644 --- a/src/com/vaadin/data/validator/BeanValidationValidator.java +++ b/src/com/vaadin/data/validator/BeanValidationValidator.java @@ -1,7 +1,12 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + package com.vaadin.data.validator; import java.io.IOException; import java.io.ObjectInputStream; +import java.io.Serializable; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; import java.lang.reflect.Method; @@ -53,6 +58,30 @@ public class BeanValidationValidator implements Validator { private MethodProperty method; private Locale locale; + /** + * Simple implementation of a message interpolator context that returns + * fixed values. + */ + protected static class SimpleContext implements Context, Serializable { + + private final Object value; + private final ConstraintDescriptor descriptor; + + public SimpleContext(Object value, ConstraintDescriptor descriptor) { + this.value = value; + this.descriptor = descriptor; + } + + public ConstraintDescriptor getConstraintDescriptor() { + return descriptor; + } + + public Object getValidatedValue() { + return value; + } + + } + /** * Creates a Vaadin {@link Validator} utilizing JSR-303 bean validation. * @@ -168,22 +197,13 @@ public class BeanValidationValidator implements Validator { Set violations = validator.validateValue(beanClass, propertyName, convertedValue); if (violations.size() > 0) { - final Object finalValue = convertedValue; List exceptions = new ArrayList(); for (Object v : violations) { final ConstraintViolation violation = (ConstraintViolation) v; String msg = factory.getMessageInterpolator().interpolate( - violation.getMessageTemplate(), new Context() { - - public ConstraintDescriptor getConstraintDescriptor() { - return violation.getConstraintDescriptor(); - } - - public Object getValidatedValue() { - return finalValue; - } - - }, locale); + violation.getMessageTemplate(), + new SimpleContext(convertedValue, violation + .getConstraintDescriptor()), locale); exceptions.add(msg); } StringBuilder b = new StringBuilder(); @@ -264,16 +284,7 @@ public class BeanValidationValidator implements Validator { "Annotation must have message attribute"); } String msg = factory.getMessageInterpolator().interpolate( - messageTemplate, new Context() { - - public Object getValidatedValue() { - return value; - } - - public ConstraintDescriptor getConstraintDescriptor() { - return d; - } - }, locale); + messageTemplate, new SimpleContext(value, d), locale); exceptions.add(msg); } } -- cgit v1.2.3