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