]> source.dussan.org Git - vaadin-framework.git/commitdiff
Rename BeanValidationValidator to BeanValidator based on review.
authorHenri Sara <hesara@vaadin.com>
Thu, 22 Dec 2011 10:56:51 +0000 (12:56 +0200)
committerHenri Sara <hesara@vaadin.com>
Thu, 22 Dec 2011 10:57:25 +0000 (12:57 +0200)
src/com/vaadin/data/fieldbinder/BeanFieldGroup.java
src/com/vaadin/data/validator/BeanValidationValidator.java [deleted file]
src/com/vaadin/data/validator/BeanValidator.java [new file with mode: 0644]
tests/server-side/com/vaadin/tests/server/validation/TestBeanValidation.java

index ab1e1a5ab2cd3fa74fc7651c6c2d02f24fbac47b..3cb295bb2a5399f81c70855ced5cb422d6956695 100644 (file)
@@ -7,7 +7,7 @@ import java.lang.reflect.Method;
 \r
 import com.vaadin.data.Item;\r
 import com.vaadin.data.util.BeanItem;\r
-import com.vaadin.data.validator.BeanValidationValidator;\r
+import com.vaadin.data.validator.BeanValidator;\r
 import com.vaadin.ui.Field;\r
 \r
 public class BeanFieldGroup<T> extends FieldGroup {\r
@@ -120,7 +120,7 @@ public class BeanFieldGroup<T> extends FieldGroup {
         super.configureField(field);\r
         // Add Bean validators if there are annotations\r
         if (isBeanValidationImplementationAvailable()) {\r
-            BeanValidationValidator validator = new BeanValidationValidator(\r
+            BeanValidator validator = new BeanValidator(\r
                     beanType, getPropertyId(field).toString());\r
             field.addValidator(validator);\r
             if (field.getLocale() != null) {\r
diff --git a/src/com/vaadin/data/validator/BeanValidationValidator.java b/src/com/vaadin/data/validator/BeanValidationValidator.java
deleted file mode 100644 (file)
index 90f330c..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/* \r
-@VaadinApache2LicenseForJavaFiles@\r
- */\r
-\r
-package com.vaadin.data.validator;\r
-\r
-import java.io.Serializable;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Locale;\r
-import java.util.Set;\r
-\r
-import javax.validation.ConstraintViolation;\r
-import javax.validation.MessageInterpolator.Context;\r
-import javax.validation.Validation;\r
-import javax.validation.ValidatorFactory;\r
-import javax.validation.metadata.ConstraintDescriptor;\r
-\r
-import com.vaadin.data.Validator;\r
-\r
-/**\r
- * Vaadin {@link Validator} using the JSR-303 (javax.validation)\r
- * annotation-based bean validation.\r
- * \r
- * The annotations of the fields of the beans are used to determine the\r
- * validation to perform.\r
- * \r
- * Note that a JSR-303 implementation (e.g. Hibernate Validator or Apache Bean\r
- * Validation - formerly agimatec validation) must be present on the project\r
- * classpath when using bean validation.\r
- * \r
- * @since 7.0\r
- * \r
- * @author Petri Hakala\r
- * @author Henri Sara\r
- */\r
-public class BeanValidationValidator implements Validator {\r
-\r
-    private static final long serialVersionUID = 1L;\r
-    private static ValidatorFactory factory;\r
-\r
-    private transient javax.validation.Validator javaxBeanValidator;\r
-    private String propertyName;\r
-    private Class<?> beanClass;\r
-    private Locale locale;\r
-\r
-    /**\r
-     * Simple implementation of a message interpolator context that returns\r
-     * fixed values.\r
-     */\r
-    protected static class SimpleContext implements Context, Serializable {\r
-\r
-        private final Object value;\r
-        private final ConstraintDescriptor<?> descriptor;\r
-\r
-        /**\r
-         * Create a simple immutable message interpolator context.\r
-         * \r
-         * @param value\r
-         *            value being validated\r
-         * @param descriptor\r
-         *            ConstraintDescriptor corresponding to the constraint being\r
-         *            validated\r
-         */\r
-        public SimpleContext(Object value, ConstraintDescriptor<?> descriptor) {\r
-            this.value = value;\r
-            this.descriptor = descriptor;\r
-        }\r
-\r
-        public ConstraintDescriptor<?> getConstraintDescriptor() {\r
-            return descriptor;\r
-        }\r
-\r
-        public Object getValidatedValue() {\r
-            return value;\r
-        }\r
-\r
-    }\r
-\r
-    /**\r
-     * Creates a Vaadin {@link Validator} utilizing JSR-303 bean validation.\r
-     * \r
-     * @param beanClass\r
-     *            bean class based on which the validation should be performed\r
-     * @param propertyName\r
-     *            property to validate\r
-     */\r
-    public BeanValidationValidator(Class<?> beanClass, String propertyName) {\r
-        this.beanClass = beanClass;\r
-        this.propertyName = propertyName;\r
-        locale = Locale.getDefault();\r
-    }\r
-\r
-    /*\r
-     * (non-Javadoc)\r
-     * \r
-     * @see com.vaadin.data.Validator#validate(java.lang.Object)\r
-     */\r
-    public void validate(final Object value) throws InvalidValueException {\r
-        Set<?> violations = getJavaxBeanValidator().validateValue(beanClass,\r
-                propertyName, value);\r
-        if (violations.size() > 0) {\r
-            List<String> exceptions = new ArrayList<String>();\r
-            for (Object v : violations) {\r
-                final ConstraintViolation<?> violation = (ConstraintViolation<?>) v;\r
-                String msg = getJavaxBeanValidatorFactory()\r
-                        .getMessageInterpolator().interpolate(\r
-                                violation.getMessageTemplate(),\r
-                                new SimpleContext(value, violation\r
-                                        .getConstraintDescriptor()), locale);\r
-                exceptions.add(msg);\r
-            }\r
-            StringBuilder b = new StringBuilder();\r
-            for (int i = 0; i < exceptions.size(); i++) {\r
-                if (i != 0) {\r
-                    b.append("<br/>");\r
-                }\r
-                b.append(exceptions.get(i));\r
-            }\r
-            throw new InvalidValueException(b.toString());\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Sets the locale used for validation error messages.\r
-     * \r
-     * Revalidation is not automatically triggered by setting the locale.\r
-     * \r
-     * @param locale\r
-     */\r
-    public void setLocale(Locale locale) {\r
-        this.locale = locale;\r
-    }\r
-\r
-    /**\r
-     * Gets the locale used for validation error messages.\r
-     * \r
-     * @return locale used for validation\r
-     */\r
-    public Locale getLocale() {\r
-        return locale;\r
-    }\r
-\r
-    /**\r
-     * Returns the underlying JSR-303 bean validator factory used. A factory is\r
-     * created using {@link Validation} if necessary.\r
-     * \r
-     * @return {@link ValidatorFactory} to use\r
-     */\r
-    protected static ValidatorFactory getJavaxBeanValidatorFactory() {\r
-        if (factory == null) {\r
-            factory = Validation.buildDefaultValidatorFactory();\r
-        }\r
-\r
-        return factory;\r
-    }\r
-\r
-    /**\r
-     * Returns a shared Validator instance to use. An instance is created using\r
-     * the validator factory if necessary and thereafter reused by the\r
-     * {@link BeanValidationValidator} instance.\r
-     * \r
-     * @return the JSR-303 {@link javax.validation.Validator} to use\r
-     */\r
-    protected javax.validation.Validator getJavaxBeanValidator() {\r
-        if (javaxBeanValidator == null) {\r
-            javaxBeanValidator = getJavaxBeanValidatorFactory().getValidator();\r
-        }\r
-\r
-        return javaxBeanValidator;\r
-    }\r
-\r
-}
\ No newline at end of file
diff --git a/src/com/vaadin/data/validator/BeanValidator.java b/src/com/vaadin/data/validator/BeanValidator.java
new file mode 100644 (file)
index 0000000..939fd2e
--- /dev/null
@@ -0,0 +1,173 @@
+/* \r
+@VaadinApache2LicenseForJavaFiles@\r
+ */\r
+\r
+package com.vaadin.data.validator;\r
+\r
+import java.io.Serializable;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.Locale;\r
+import java.util.Set;\r
+\r
+import javax.validation.ConstraintViolation;\r
+import javax.validation.MessageInterpolator.Context;\r
+import javax.validation.Validation;\r
+import javax.validation.ValidatorFactory;\r
+import javax.validation.metadata.ConstraintDescriptor;\r
+\r
+import com.vaadin.data.Validator;\r
+\r
+/**\r
+ * Vaadin {@link Validator} using the JSR-303 (javax.validation)\r
+ * annotation-based bean validation.\r
+ * \r
+ * The annotations of the fields of the beans are used to determine the\r
+ * validation to perform.\r
+ * \r
+ * Note that a JSR-303 implementation (e.g. Hibernate Validator or Apache Bean\r
+ * Validation - formerly agimatec validation) must be present on the project\r
+ * classpath when using bean validation.\r
+ * \r
+ * @since 7.0\r
+ * \r
+ * @author Petri Hakala\r
+ * @author Henri Sara\r
+ */\r
+public class BeanValidator implements Validator {\r
+\r
+    private static final long serialVersionUID = 1L;\r
+    private static ValidatorFactory factory;\r
+\r
+    private transient javax.validation.Validator javaxBeanValidator;\r
+    private String propertyName;\r
+    private Class<?> beanClass;\r
+    private Locale locale;\r
+\r
+    /**\r
+     * Simple implementation of a message interpolator context that returns\r
+     * fixed values.\r
+     */\r
+    protected static class SimpleContext implements Context, Serializable {\r
+\r
+        private final Object value;\r
+        private final ConstraintDescriptor<?> descriptor;\r
+\r
+        /**\r
+         * Create a simple immutable message interpolator context.\r
+         * \r
+         * @param value\r
+         *            value being validated\r
+         * @param descriptor\r
+         *            ConstraintDescriptor corresponding to the constraint being\r
+         *            validated\r
+         */\r
+        public SimpleContext(Object value, ConstraintDescriptor<?> descriptor) {\r
+            this.value = value;\r
+            this.descriptor = descriptor;\r
+        }\r
+\r
+        public ConstraintDescriptor<?> getConstraintDescriptor() {\r
+            return descriptor;\r
+        }\r
+\r
+        public Object getValidatedValue() {\r
+            return value;\r
+        }\r
+\r
+    }\r
+\r
+    /**\r
+     * Creates a Vaadin {@link Validator} utilizing JSR-303 bean validation.\r
+     * \r
+     * @param beanClass\r
+     *            bean class based on which the validation should be performed\r
+     * @param propertyName\r
+     *            property to validate\r
+     */\r
+    public BeanValidator(Class<?> beanClass, String propertyName) {\r
+        this.beanClass = beanClass;\r
+        this.propertyName = propertyName;\r
+        locale = Locale.getDefault();\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see com.vaadin.data.Validator#validate(java.lang.Object)\r
+     */\r
+    public void validate(final Object value) throws InvalidValueException {\r
+        Set<?> violations = getJavaxBeanValidator().validateValue(beanClass,\r
+                propertyName, value);\r
+        if (violations.size() > 0) {\r
+            List<String> exceptions = new ArrayList<String>();\r
+            for (Object v : violations) {\r
+                final ConstraintViolation<?> violation = (ConstraintViolation<?>) v;\r
+                String msg = getJavaxBeanValidatorFactory()\r
+                        .getMessageInterpolator().interpolate(\r
+                                violation.getMessageTemplate(),\r
+                                new SimpleContext(value, violation\r
+                                        .getConstraintDescriptor()), locale);\r
+                exceptions.add(msg);\r
+            }\r
+            StringBuilder b = new StringBuilder();\r
+            for (int i = 0; i < exceptions.size(); i++) {\r
+                if (i != 0) {\r
+                    b.append("<br/>");\r
+                }\r
+                b.append(exceptions.get(i));\r
+            }\r
+            throw new InvalidValueException(b.toString());\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the locale used for validation error messages.\r
+     * \r
+     * Revalidation is not automatically triggered by setting the locale.\r
+     * \r
+     * @param locale\r
+     */\r
+    public void setLocale(Locale locale) {\r
+        this.locale = locale;\r
+    }\r
+\r
+    /**\r
+     * Gets the locale used for validation error messages.\r
+     * \r
+     * @return locale used for validation\r
+     */\r
+    public Locale getLocale() {\r
+        return locale;\r
+    }\r
+\r
+    /**\r
+     * Returns the underlying JSR-303 bean validator factory used. A factory is\r
+     * created using {@link Validation} if necessary.\r
+     * \r
+     * @return {@link ValidatorFactory} to use\r
+     */\r
+    protected static ValidatorFactory getJavaxBeanValidatorFactory() {\r
+        if (factory == null) {\r
+            factory = Validation.buildDefaultValidatorFactory();\r
+        }\r
+\r
+        return factory;\r
+    }\r
+\r
+    /**\r
+     * Returns a shared Validator instance to use. An instance is created using\r
+     * the validator factory if necessary and thereafter reused by the\r
+     * {@link BeanValidator} instance.\r
+     * \r
+     * @return the JSR-303 {@link javax.validation.Validator} to use\r
+     */\r
+    protected javax.validation.Validator getJavaxBeanValidator() {\r
+        if (javaxBeanValidator == null) {\r
+            javaxBeanValidator = getJavaxBeanValidatorFactory().getValidator();\r
+        }\r
+\r
+        return javaxBeanValidator;\r
+    }\r
+\r
+}
\ No newline at end of file
index 9111ab9a4b3e8297512e264a9d37cb5150737f61..8f6928fc3537b6824d2cf1c41d79ce6b9568fb7e 100644 (file)
@@ -3,56 +3,54 @@ package com.vaadin.tests.server.validation;
 import org.junit.Test;
 
 import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.data.validator.BeanValidationValidator;
+import com.vaadin.data.validator.BeanValidator;
 import com.vaadin.tests.data.bean.BeanToValidate;
 
 public class TestBeanValidation {
     @Test(expected = InvalidValueException.class)
     public void testBeanValidationNull() {
-        BeanValidationValidator validator = new BeanValidationValidator(
-                BeanToValidate.class, "firstname");
+        BeanValidator validator = new BeanValidator(BeanToValidate.class,
+                "firstname");
         validator.validate(null);
     }
 
     @Test(expected = InvalidValueException.class)
     public void testBeanValidationStringTooShort() {
-        BeanValidationValidator validator = new BeanValidationValidator(
-                BeanToValidate.class, "firstname");
+        BeanValidator validator = new BeanValidator(BeanToValidate.class,
+                "firstname");
         validator.validate("aa");
     }
 
     @Test
     public void testBeanValidationStringOk() {
-        BeanValidationValidator validator = new BeanValidationValidator(
-                BeanToValidate.class, "firstname");
+        BeanValidator validator = new BeanValidator(BeanToValidate.class,
+                "firstname");
         validator.validate("aaa");
     }
 
     @Test(expected = InvalidValueException.class)
     public void testBeanValidationIntegerTooSmall() {
-        BeanValidationValidator validator = new BeanValidationValidator(
-                BeanToValidate.class, "age");
+        BeanValidator validator = new BeanValidator(BeanToValidate.class, "age");
         validator.validate(17);
     }
 
     @Test
     public void testBeanValidationIntegerOk() {
-        BeanValidationValidator validator = new BeanValidationValidator(
-                BeanToValidate.class, "age");
+        BeanValidator validator = new BeanValidator(BeanToValidate.class, "age");
         validator.validate(18);
     }
 
     @Test(expected = InvalidValueException.class)
     public void testBeanValidationTooManyDigits() {
-        BeanValidationValidator validator = new BeanValidationValidator(
-                BeanToValidate.class, "decimals");
+        BeanValidator validator = new BeanValidator(BeanToValidate.class,
+                "decimals");
         validator.validate("1234.567");
     }
 
     @Test
     public void testBeanValidationDigitsOk() {
-        BeanValidationValidator validator = new BeanValidationValidator(
-                BeanToValidate.class, "decimals");
+        BeanValidator validator = new BeanValidator(BeanToValidate.class,
+                "decimals");
         validator.validate("123.45");
     }