From 1f3656e0dcdd59c323a9ab7d9b962e42250f0aa3 Mon Sep 17 00:00:00 2001
From: Henri Sara
Date: Mon, 14 Jan 2013 13:22:54 +0200
Subject: Most validators should accept null or empty string (#10561, #10713).
Change-Id: I1e8d6015aefdc184af6383cb22cdf3e13be351cf
---
.../com/vaadin/data/validator/EmailValidator.java | 21 ++++++---------------
.../com/vaadin/data/validator/RangeValidator.java | 3 ++-
.../com/vaadin/data/validator/RegexpValidator.java | 8 ++++++++
3 files changed, 16 insertions(+), 16 deletions(-)
(limited to 'server/src/com')
diff --git a/server/src/com/vaadin/data/validator/EmailValidator.java b/server/src/com/vaadin/data/validator/EmailValidator.java
index 2217b3cf2c..aa7a921d51 100644
--- a/server/src/com/vaadin/data/validator/EmailValidator.java
+++ b/server/src/com/vaadin/data/validator/EmailValidator.java
@@ -23,6 +23,12 @@ package com.vaadin.data.validator;
* See {@link com.vaadin.data.validator.AbstractStringValidator} for more
* information.
*
+ *
+ * An empty string or a null is always accepted - use the required flag on
+ * fields or a separate validator (or override {@link #isValidValue(String)}) to
+ * fail on empty values.
+ *
+ *
* @author Vaadin Ltd.
* @since 5.4
*/
@@ -41,19 +47,4 @@ public class EmailValidator extends RegexpValidator {
"^([a-zA-Z0-9_\\.\\-+])+@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9]{2,4})+$",
true, errorMessage);
}
-
- /*
- * (non-Javadoc)
- *
- * @see
- * com.vaadin.data.validator.AbstractValidator#isValidValue(java.lang.Object
- * )
- */
- @Override
- protected boolean isValidValue(String value) {
- if (value == null || value.isEmpty()) {
- return true;
- }
- return super.isValidValue(value);
- }
}
diff --git a/server/src/com/vaadin/data/validator/RangeValidator.java b/server/src/com/vaadin/data/validator/RangeValidator.java
index d92e259cf6..5e82a37b51 100644
--- a/server/src/com/vaadin/data/validator/RangeValidator.java
+++ b/server/src/com/vaadin/data/validator/RangeValidator.java
@@ -154,7 +154,8 @@ public class RangeValidator extends AbstractValidator {
*/
@Override
protected boolean isValidValue(T value) {
- if (value == null) {
+ if (value == null
+ || (String.class.equals(getType()) && "".equals(value))) {
return true;
}
diff --git a/server/src/com/vaadin/data/validator/RegexpValidator.java b/server/src/com/vaadin/data/validator/RegexpValidator.java
index ea659fcfe2..f85bce9281 100644
--- a/server/src/com/vaadin/data/validator/RegexpValidator.java
+++ b/server/src/com/vaadin/data/validator/RegexpValidator.java
@@ -30,6 +30,11 @@ import java.util.regex.Pattern;
* See {@link com.vaadin.data.validator.AbstractStringValidator} for more
* information.
*
+ *
+ * An empty string or a null is always accepted - use the required flag on
+ * fields or a separate validator (or override {@link #isValidValue(String)}) to
+ * fail on empty values.
+ *
*
* @author Vaadin Ltd.
* @since 5.4
@@ -81,6 +86,9 @@ public class RegexpValidator extends AbstractStringValidator {
*/
@Override
protected boolean isValidValue(String value) {
+ if (value == null || value.isEmpty()) {
+ return true;
+ }
if (complete) {
return getMatcher(value).matches();
} else {
--
cgit v1.2.3