aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/main/java/com
diff options
context:
space:
mode:
authorDenis Anisimov <denis@vaadin.com>2016-11-01 11:38:17 +0200
committerDenis Anisimov <denis@vaadin.com>2016-11-01 17:14:19 +0200
commite4d132f4cb84a7aafdf70b5e5ca2121b66c87bfa (patch)
treef4a1a5160cafb94482e12d8f0dda8ce9ba82146c /server/src/main/java/com
parent855ec0f67951da7f4392ae704796340e1d1a3ff3 (diff)
downloadvaadin-framework-e4d132f4cb84a7aafdf70b5e5ca2121b66c87bfa.tar.gz
vaadin-framework-e4d132f4cb84a7aafdf70b5e5ca2121b66c87bfa.zip
Introduces ValidationResult interface to replace Result in validators.
Fixes vaadin/framework8-issues#414 Change-Id: I2d4e101f29542fadfdd30ce63455a0e078e0e735
Diffstat (limited to 'server/src/main/java/com')
-rw-r--r--server/src/main/java/com/vaadin/data/Binder.java51
-rw-r--r--server/src/main/java/com/vaadin/data/BinderValidationStatus.java23
-rw-r--r--server/src/main/java/com/vaadin/data/Result.java6
-rw-r--r--server/src/main/java/com/vaadin/data/ValidationException.java15
-rw-r--r--server/src/main/java/com/vaadin/data/ValidationResult.java103
-rw-r--r--server/src/main/java/com/vaadin/data/ValidationStatus.java18
-rw-r--r--server/src/main/java/com/vaadin/data/Validator.java29
-rw-r--r--server/src/main/java/com/vaadin/data/validator/AbstractValidator.java7
-rw-r--r--server/src/main/java/com/vaadin/data/validator/BeanValidator.java15
-rw-r--r--server/src/main/java/com/vaadin/data/validator/NotEmptyValidator.java8
-rw-r--r--server/src/main/java/com/vaadin/data/validator/NotNullValidator.java8
-rw-r--r--server/src/main/java/com/vaadin/data/validator/RangeValidator.java4
-rw-r--r--server/src/main/java/com/vaadin/data/validator/RegexpValidator.java4
-rw-r--r--server/src/main/java/com/vaadin/data/validator/StringLengthValidator.java6
-rw-r--r--server/src/main/java/com/vaadin/ui/AbstractDateField.java3
15 files changed, 215 insertions, 85 deletions
diff --git a/server/src/main/java/com/vaadin/data/Binder.java b/server/src/main/java/com/vaadin/data/Binder.java
index e139bcd5c8..f8ddace8a6 100644
--- a/server/src/main/java/com/vaadin/data/Binder.java
+++ b/server/src/main/java/com/vaadin/data/Binder.java
@@ -623,13 +623,30 @@ public class Binder<BEAN> implements Serializable {
* Returns the field value run through all converters and validators,
* but doesn't pass the {@link ValidationStatus} to any status handler.
*
+ * @return the conversation result
+ */
+ private Result<TARGET> doConversation() {
+ FIELDVALUE fieldValue = field.getValue();
+ return converterValidatorChain.convertToModel(fieldValue,
+ createValueContext());
+ }
+
+ private ValidationStatus<TARGET> toValidationStatus(
+ Result<TARGET> result) {
+ return new ValidationStatus<>(this,
+ result.isError()
+ ? ValidationResult.error(result.getMessage().get())
+ : ValidationResult.ok());
+ }
+
+ /**
+ * Returns the field value run through all converters and validators,
+ * but doesn't pass the {@link ValidationStatus} to any status handler.
+ *
* @return the validation status
*/
private ValidationStatus<TARGET> doValidation() {
- FIELDVALUE fieldValue = field.getValue();
- Result<TARGET> dataValue = converterValidatorChain
- .convertToModel(fieldValue, createValueContext());
- return new ValidationStatus<>(this, dataValue);
+ return toValidationStatus(doConversation());
}
/**
@@ -677,7 +694,7 @@ public class Binder<BEAN> implements Serializable {
// store field value if valid
ValidationStatus<TARGET> fieldValidationStatus = writeFieldValue(
bean);
- List<Result<?>> binderValidationResults;
+ List<ValidationResult> binderValidationResults;
// if all field level validations pass, run bean level validation
if (!getBinder().bindings.stream().map(BindingImpl::doValidation)
.anyMatch(ValidationStatus::isError)) {
@@ -702,12 +719,11 @@ public class Binder<BEAN> implements Serializable {
private ValidationStatus<TARGET> writeFieldValue(BEAN bean) {
assert bean != null;
- ValidationStatus<TARGET> validationStatus = doValidation();
+ Result<TARGET> result = doConversation();
if (setter != null) {
- validationStatus.getResult().ifPresent(result -> result
- .ifOk(value -> setter.accept(bean, value)));
+ result.ifOk(value -> setter.accept(bean, value));
}
- return validationStatus;
+ return toValidationStatus(result);
}
private void notifyStatusHandler(ValidationStatus<?> status) {
@@ -740,10 +756,9 @@ public class Binder<BEAN> implements Serializable {
@Override
public Result<T> convertToModel(T value, ValueContext context) {
- Result<? super T> validationResult = validator.apply(value,
- context);
+ ValidationResult validationResult = validator.apply(value, context);
if (validationResult.isError()) {
- return Result.error(validationResult.getMessage().get());
+ return Result.error(validationResult.getErrorMessage());
} else {
return Result.ok(value);
}
@@ -1069,9 +1084,9 @@ public class Binder<BEAN> implements Serializable {
bindings.forEach(binding -> binding.writeFieldValue(bean));
// Now run bean level validation against the updated bean
- List<Result<?>> binderResults = validateBean(bean);
- boolean hasErrors = binderResults.stream().filter(Result::isError)
- .findAny().isPresent();
+ List<ValidationResult> binderResults = validateBean(bean);
+ boolean hasErrors = binderResults.stream()
+ .filter(ValidationResult::isError).findAny().isPresent();
if (hasErrors) {
// Bean validator failed, revert values
bindings.forEach((BindingImpl binding) -> binding.setter
@@ -1216,9 +1231,9 @@ public class Binder<BEAN> implements Serializable {
* @return a list of validation errors or an empty list if validation
* succeeded
*/
- private List<Result<?>> validateBean(BEAN bean) {
+ private List<ValidationResult> validateBean(BEAN bean) {
Objects.requireNonNull(bean, "bean cannot be null");
- List<Result<?>> results = Collections.unmodifiableList(validators
+ List<ValidationResult> results = Collections.unmodifiableList(validators
.stream()
.map(validator -> validator.apply(bean, new ValueContext()))
.collect(Collectors.toList()));
@@ -1444,7 +1459,7 @@ public class Binder<BEAN> implements Serializable {
// show first possible error or OK status in the label if set
if (getStatusLabel().isPresent()) {
String statusMessage = binderStatus.getBeanValidationErrors()
- .stream().findFirst().flatMap(Result::getMessage)
+ .stream().findFirst().map(ValidationResult::getErrorMessage)
.orElse("");
getStatusLabel().get().setValue(statusMessage);
}
diff --git a/server/src/main/java/com/vaadin/data/BinderValidationStatus.java b/server/src/main/java/com/vaadin/data/BinderValidationStatus.java
index 9b7e40f516..41a181dacf 100644
--- a/server/src/main/java/com/vaadin/data/BinderValidationStatus.java
+++ b/server/src/main/java/com/vaadin/data/BinderValidationStatus.java
@@ -53,7 +53,7 @@ public class BinderValidationStatus<BEAN> implements Serializable {
private final Binder<BEAN> binder;
private final List<ValidationStatus<?>> bindingStatuses;
- private final List<Result<?>> binderStatuses;
+ private final List<ValidationResult> binderStatuses;
/**
* Convenience method for creating a unresolved validation status for the
@@ -90,7 +90,7 @@ public class BinderValidationStatus<BEAN> implements Serializable {
*/
public BinderValidationStatus(Binder<BEAN> source,
List<ValidationStatus<?>> bindingStatuses,
- List<Result<?>> binderStatuses) {
+ List<ValidationResult> binderStatuses) {
Objects.requireNonNull(binderStatuses,
"binding statuses cannot be null");
Objects.requireNonNull(binderStatuses,
@@ -116,8 +116,8 @@ public class BinderValidationStatus<BEAN> implements Serializable {
* passed
*/
public boolean hasErrors() {
- return binderStatuses.stream().filter(Result::isError).findAny()
- .isPresent()
+ return binderStatuses.stream().filter(ValidationResult::isError)
+ .findAny().isPresent()
|| bindingStatuses.stream().filter(ValidationStatus::isError)
.findAny().isPresent();
}
@@ -136,10 +136,11 @@ public class BinderValidationStatus<BEAN> implements Serializable {
*
* @return a list of all validation errors
*/
- public List<Result<?>> getValidationErrors() {
- ArrayList<Result<?>> errors = new ArrayList<>(getFieldValidationErrors()
- .stream().map(s -> s.getResult().get())
- .collect(Collectors.toList()));
+ public List<ValidationResult> getValidationErrors() {
+ ArrayList<ValidationResult> errors = new ArrayList<>(
+ getFieldValidationErrors().stream()
+ .map(s -> s.getResult().get())
+ .collect(Collectors.toList()));
errors.addAll(getBeanValidationErrors());
return errors;
}
@@ -166,7 +167,7 @@ public class BinderValidationStatus<BEAN> implements Serializable {
*
* @return the bean level validation results
*/
- public List<Result<?>> getBeanValidationResults() {
+ public List<ValidationResult> getBeanValidationResults() {
return binderStatuses;
}
@@ -193,8 +194,8 @@ public class BinderValidationStatus<BEAN> implements Serializable {
*
* @return a list of failed bean level validation results
*/
- public List<Result<?>> getBeanValidationErrors() {
- return binderStatuses.stream().filter(Result::isError)
+ public List<ValidationResult> getBeanValidationErrors() {
+ return binderStatuses.stream().filter(ValidationResult::isError)
.collect(Collectors.toList());
}
}
diff --git a/server/src/main/java/com/vaadin/data/Result.java b/server/src/main/java/com/vaadin/data/Result.java
index 7f63efa6a6..e2e7c61e84 100644
--- a/server/src/main/java/com/vaadin/data/Result.java
+++ b/server/src/main/java/com/vaadin/data/Result.java
@@ -24,9 +24,9 @@ import java.util.function.Function;
import java.util.function.Supplier;
/**
- * Represents the result of an operation that might fail, such as input
- * validation or type conversion. A result may contain either a value,
- * signifying a successful operation, or an error message in case of a failure.
+ * Represents the result of an operation that might fail, such as type
+ * conversion. A result may contain either a value, signifying a successful
+ * operation, or an error message in case of a failure.
* <p>
* Result instances are created using the factory methods {@link #ok(R)} and
* {@link #error(String)}, denoting success and failure respectively.
diff --git a/server/src/main/java/com/vaadin/data/ValidationException.java b/server/src/main/java/com/vaadin/data/ValidationException.java
index 093d88283a..0f86dd5186 100644
--- a/server/src/main/java/com/vaadin/data/ValidationException.java
+++ b/server/src/main/java/com/vaadin/data/ValidationException.java
@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
public class ValidationException extends Exception {
private final List<ValidationStatus<?>> fieldValidationErrors;
- private final List<Result<?>> beanValidationErrors;
+ private final List<ValidationResult> beanValidationErrors;
/**
* Constructs a new exception with validation {@code errors} list.
@@ -45,7 +45,7 @@ public class ValidationException extends Exception {
* binder validation errors list
*/
public ValidationException(List<ValidationStatus<?>> fieldValidationErrors,
- List<Result<?>> beanValidationErrors) {
+ List<ValidationResult> beanValidationErrors) {
super("Validation has failed for some fields");
this.fieldValidationErrors = Collections
.unmodifiableList(fieldValidationErrors);
@@ -58,10 +58,11 @@ public class ValidationException extends Exception {
*
* @return a list of all validation errors
*/
- public List<Result<?>> getValidationErrors() {
- ArrayList<Result<?>> errors = new ArrayList<>(getFieldValidationErrors()
- .stream().map(s -> s.getResult().get())
- .collect(Collectors.toList()));
+ public List<ValidationResult> getValidationErrors() {
+ ArrayList<ValidationResult> errors = new ArrayList<>(
+ getFieldValidationErrors().stream()
+ .map(s -> s.getResult().get())
+ .collect(Collectors.toList()));
errors.addAll(getBeanValidationErrors());
return errors;
}
@@ -84,7 +85,7 @@ public class ValidationException extends Exception {
*
* @return binder validation errors list
*/
- public List<Result<?>> getBeanValidationErrors() {
+ public List<ValidationResult> getBeanValidationErrors() {
return beanValidationErrors;
}
}
diff --git a/server/src/main/java/com/vaadin/data/ValidationResult.java b/server/src/main/java/com/vaadin/data/ValidationResult.java
new file mode 100644
index 0000000000..489631005f
--- /dev/null
+++ b/server/src/main/java/com/vaadin/data/ValidationResult.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2000-2016 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.data;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * Represents the result of a validation. A result may be either successful or
+ * contain an error message in case of a failure.
+ * <p>
+ * ValidationResult instances are created using the factory methods
+ * {@link #ok()} and {@link #error(String)}, denoting success and failure
+ * respectively.
+ *
+ * @author Vaadin Ltd
+ * @since 8.0
+ *
+ */
+public interface ValidationResult extends Serializable {
+
+ class SimpleValidationResult implements ValidationResult {
+
+ private final String error;
+
+ SimpleValidationResult(String error) {
+ this.error = error;
+ }
+
+ @Override
+ public String getErrorMessage() {
+ if (error == null) {
+ throw new IllegalStateException("The result is not an error. "
+ + "It cannot contain error message");
+ } else {
+ return error;
+ }
+ }
+
+ @Override
+ public boolean isError() {
+ return error != null;
+ }
+
+ }
+
+ /**
+ * Returns the result message.
+ * <p>
+ * Throws an {@link IllegalStateException} if the result represents success.
+ *
+ * @return the error message
+ * @throws IllegalStateException
+ * if the result represents success
+ */
+ String getErrorMessage();
+
+ /**
+ * Checks if the result denotes an error.
+ *
+ * @return <code>true</code> if the result denotes an error,
+ * <code>false</code> otherwise
+ */
+ boolean isError();
+
+ /**
+ * Returns a successful result.
+ *
+ * @return the successful result
+ */
+ public static ValidationResult ok() {
+ return new SimpleValidationResult(null);
+ }
+
+ /**
+ * Creates the validation result which represent an error with the given
+ * {@code errorMessage}.
+ *
+ * @param errorMessage
+ * error message, not {@code null}
+ * @return validation result which represent an error with the given
+ * {@code errorMessage}
+ * @throws NullPointerException
+ * if {@code errorMessage} is null
+ */
+ public static ValidationResult error(String errorMessage) {
+ Objects.requireNonNull(errorMessage);
+ return new SimpleValidationResult(errorMessage);
+ }
+}
diff --git a/server/src/main/java/com/vaadin/data/ValidationStatus.java b/server/src/main/java/com/vaadin/data/ValidationStatus.java
index f1f3da2d09..66e34eb6dd 100644
--- a/server/src/main/java/com/vaadin/data/ValidationStatus.java
+++ b/server/src/main/java/com/vaadin/data/ValidationStatus.java
@@ -22,8 +22,11 @@ import java.util.Optional;
import com.vaadin.data.Binder.Binding;
/**
- * Represents the outcome of field level validation. Use
- * {@link Binding#withValidationStatusHandler(ValidationStatusHandler)} to
+ * Represents the status of field validation. Status can be {@code Status.OK},
+ * {@code Status.ERROR} or {@code Status.RESET}. Status OK and ERROR are always
+ * associated with a ValidationResult {@link #getResult}.
+ * <p>
+ * Use {@link Binding#withValidationStatusHandler(ValidationStatusHandler)} to
* register a handler for field level validation status changes.
*
* @author Vaadin Ltd
@@ -65,7 +68,7 @@ public class ValidationStatus<TARGET> implements Serializable {
}
private final Status status;
- private final Result<TARGET> result;
+ private final ValidationResult result;
private final Binding<?, ?, TARGET> binding;
/**
@@ -94,7 +97,7 @@ public class ValidationStatus<TARGET> implements Serializable {
* the result of the validation
*/
public ValidationStatus(Binding<?, ?, TARGET> source,
- Result<TARGET> result) {
+ ValidationResult result) {
this(source, result.isError() ? Status.ERROR : Status.OK, result);
}
@@ -112,7 +115,7 @@ public class ValidationStatus<TARGET> implements Serializable {
* the related result, may be {@code null}
*/
public ValidationStatus(Binding<?, ?, TARGET> source, Status status,
- Result<TARGET> result) {
+ ValidationResult result) {
Objects.requireNonNull(source, "Event source may not be null");
Objects.requireNonNull(status, "Status may not be null");
if (Objects.equals(status, Status.OK) && result.isError()
@@ -154,7 +157,8 @@ public class ValidationStatus<TARGET> implements Serializable {
* status is not an error
*/
public Optional<String> getMessage() {
- return Optional.ofNullable(result).flatMap(Result::getMessage);
+ return Optional.ofNullable(result).filter(ValidationResult::isError)
+ .map(ValidationResult::getErrorMessage);
}
/**
@@ -164,7 +168,7 @@ public class ValidationStatus<TARGET> implements Serializable {
*
* @return the validation result
*/
- public Optional<Result<TARGET>> getResult() {
+ public Optional<ValidationResult> getResult() {
return Optional.ofNullable(result);
}
diff --git a/server/src/main/java/com/vaadin/data/Validator.java b/server/src/main/java/com/vaadin/data/Validator.java
index 45a88bc7f3..33da20b945 100644
--- a/server/src/main/java/com/vaadin/data/Validator.java
+++ b/server/src/main/java/com/vaadin/data/Validator.java
@@ -34,9 +34,9 @@ import com.vaadin.server.SerializablePredicate;
* <pre>
* Validator&lt;Integer&gt; v = num -> {
* if (num >= 0)
- * return Result.ok(num);
+ * return ValidationResult.ok();
* else
- * return Result.error("number must be positive");
+ * return ValidationResult.error("number must be positive");
* };
* </pre>
*
@@ -45,15 +45,15 @@ import com.vaadin.server.SerializablePredicate;
* @param <T>
* the type of the value to validate
*
- * @see Result
+ * @see ValidationResult
*/
@FunctionalInterface
public interface Validator<T>
- extends BiFunction<T, ValueContext, Result<T>>, Serializable {
+ extends BiFunction<T, ValueContext, ValidationResult>, Serializable {
/**
- * Validates the given value. Returns a {@code Result} instance representing
- * the outcome of the validation.
+ * Validates the given value. Returns a {@code ValidationResult} instance
+ * representing the outcome of the validation.
*
* @param value
* the input value to validate
@@ -62,7 +62,7 @@ public interface Validator<T>
* @return the validation result
*/
@Override
- public Result<T> apply(T value, ValueContext context);
+ public ValidationResult apply(T value, ValueContext context);
/**
* Returns a validator that passes any value.
@@ -72,14 +72,15 @@ public interface Validator<T>
* @return an always-passing validator
*/
public static <T> Validator<T> alwaysPass() {
- return (v, ctx) -> Result.ok(v);
+ return (value, context) -> ValidationResult.ok();
}
/**
* Builds a validator out of a conditional function and an error message. If
* the function returns true, the validator returns {@code Result.ok()}; if
- * it returns false or throws an exception, {@code Result.error()} is
- * returned with the given message.
+ * it returns false or throws an exception,
+ * {@link ValidationResult#error(String)} is returned with the given
+ * message.
* <p>
* For instance, the following validator checks if a number is between 0 and
* 10, inclusive:
@@ -126,12 +127,14 @@ public interface Validator<T>
return (value, context) -> {
try {
if (guard.test(value)) {
- return Result.ok(value);
+ return ValidationResult.ok();
} else {
- return Result.error(errorMessageProvider.apply(context));
+ return ValidationResult
+ .error(errorMessageProvider.apply(context));
}
} catch (Exception e) {
- return Result.error(errorMessageProvider.apply(context));
+ return ValidationResult
+ .error(errorMessageProvider.apply(context));
}
};
}
diff --git a/server/src/main/java/com/vaadin/data/validator/AbstractValidator.java b/server/src/main/java/com/vaadin/data/validator/AbstractValidator.java
index b798d2bf73..793797ee3f 100644
--- a/server/src/main/java/com/vaadin/data/validator/AbstractValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/AbstractValidator.java
@@ -17,7 +17,7 @@ package com.vaadin.data.validator;
import java.util.Objects;
-import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.Validator;
import com.vaadin.server.SerializableFunction;
@@ -79,7 +79,8 @@ public abstract class AbstractValidator<T> implements Validator<T> {
* whether the value is valid or not
* @return the validation result
*/
- protected Result<T> toResult(T value, boolean isValid) {
- return isValid ? Result.ok(value) : Result.error(getMessage(value));
+ protected ValidationResult toResult(T value, boolean isValid) {
+ return isValid ? ValidationResult.ok()
+ : ValidationResult.error(getMessage(value));
}
}
diff --git a/server/src/main/java/com/vaadin/data/validator/BeanValidator.java b/server/src/main/java/com/vaadin/data/validator/BeanValidator.java
index 53886c9840..a3f9b86a6e 100644
--- a/server/src/main/java/com/vaadin/data/validator/BeanValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/BeanValidator.java
@@ -19,8 +19,8 @@ package com.vaadin.data.validator;
import java.io.Serializable;
import java.util.Locale;
import java.util.Objects;
+import java.util.Optional;
import java.util.Set;
-import java.util.function.BinaryOperator;
import javax.validation.ConstraintViolation;
import javax.validation.MessageInterpolator.Context;
@@ -28,7 +28,7 @@ import javax.validation.Validation;
import javax.validation.ValidatorFactory;
import javax.validation.metadata.ConstraintDescriptor;
-import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.Validator;
import com.vaadin.data.util.BeanUtil;
import com.vaadin.data.util.converter.ValueContext;
@@ -116,16 +116,17 @@ public class BeanValidator implements Validator<Object> {
* @return the validation result
*/
@Override
- public Result<Object> apply(final Object value, ValueContext context) {
+ public ValidationResult apply(final Object value, ValueContext context) {
Set<? extends ConstraintViolation<?>> violations = getJavaxBeanValidator()
.validateValue(beanType, propertyName, value);
- BinaryOperator<Result<Object>> accumulator = (result1,
- result2) -> result1.flatMap(val -> result2);
Locale locale = context.getLocale().orElse(Locale.getDefault());
- return violations.stream().map(v -> Result.error(getMessage(v, locale)))
- .reduce(Result.ok(value), accumulator);
+ Optional<ValidationResult> result = violations.stream()
+ .map(violation -> ValidationResult
+ .error(getMessage(violation, locale)))
+ .findFirst();
+ return result.orElse(ValidationResult.ok());
}
@Override
diff --git a/server/src/main/java/com/vaadin/data/validator/NotEmptyValidator.java b/server/src/main/java/com/vaadin/data/validator/NotEmptyValidator.java
index b033538949..2223c333cb 100644
--- a/server/src/main/java/com/vaadin/data/validator/NotEmptyValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/NotEmptyValidator.java
@@ -18,7 +18,7 @@ package com.vaadin.data.validator;
import java.util.Objects;
import com.vaadin.data.HasValue;
-import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.Validator;
import com.vaadin.data.util.converter.ValueContext;
@@ -67,11 +67,11 @@ public class NotEmptyValidator<T> implements Validator<T> {
}
@Override
- public Result<T> apply(T value, ValueContext context) {
+ public ValidationResult apply(T value, ValueContext context) {
if (Objects.isNull(value) || Objects.equals(value, "")) {
- return Result.error(message);
+ return ValidationResult.error(message);
} else {
- return Result.ok(value);
+ return ValidationResult.ok();
}
}
diff --git a/server/src/main/java/com/vaadin/data/validator/NotNullValidator.java b/server/src/main/java/com/vaadin/data/validator/NotNullValidator.java
index 349e000c68..c92aefac3b 100644
--- a/server/src/main/java/com/vaadin/data/validator/NotNullValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/NotNullValidator.java
@@ -18,7 +18,7 @@ package com.vaadin.data.validator;
import java.util.Objects;
-import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.util.converter.ValueContext;
/**
@@ -42,9 +42,9 @@ public class NotNullValidator extends AbstractValidator<String> {
}
@Override
- public Result<String> apply(String value, ValueContext context) {
- return Objects.isNull(value) ? Result.error(getMessage(value))
- : Result.ok(value);
+ public ValidationResult apply(String value, ValueContext context) {
+ return Objects.isNull(value) ? ValidationResult.error(getMessage(value))
+ : ValidationResult.ok();
}
}
diff --git a/server/src/main/java/com/vaadin/data/validator/RangeValidator.java b/server/src/main/java/com/vaadin/data/validator/RangeValidator.java
index 32effdd811..b8ad387308 100644
--- a/server/src/main/java/com/vaadin/data/validator/RangeValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/RangeValidator.java
@@ -18,7 +18,7 @@ package com.vaadin.data.validator;
import java.util.Comparator;
import java.util.Objects;
-import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.util.converter.ValueContext;
/**
@@ -98,7 +98,7 @@ public class RangeValidator<T> extends AbstractValidator<T> {
* behavior depends on the used comparator.
*/
@Override
- public Result<T> apply(T value, ValueContext context) {
+ public ValidationResult apply(T value, ValueContext context) {
return toResult(value, isValid(value));
}
diff --git a/server/src/main/java/com/vaadin/data/validator/RegexpValidator.java b/server/src/main/java/com/vaadin/data/validator/RegexpValidator.java
index b9763e5199..89e4d81a53 100644
--- a/server/src/main/java/com/vaadin/data/validator/RegexpValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/RegexpValidator.java
@@ -18,7 +18,7 @@ package com.vaadin.data.validator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.util.converter.ValueContext;
/**
@@ -71,7 +71,7 @@ public class RegexpValidator extends AbstractValidator<String> {
}
@Override
- public Result<String> apply(String value, ValueContext context) {
+ public ValidationResult apply(String value, ValueContext context) {
return toResult(value, isValid(value));
}
diff --git a/server/src/main/java/com/vaadin/data/validator/StringLengthValidator.java b/server/src/main/java/com/vaadin/data/validator/StringLengthValidator.java
index 421cf13a29..b3e1da18eb 100644
--- a/server/src/main/java/com/vaadin/data/validator/StringLengthValidator.java
+++ b/server/src/main/java/com/vaadin/data/validator/StringLengthValidator.java
@@ -16,7 +16,7 @@
package com.vaadin.data.validator;
-import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.util.converter.ValueContext;
/**
@@ -50,11 +50,11 @@ public class StringLengthValidator extends AbstractValidator<String> {
}
@Override
- public Result<String> apply(String value, ValueContext context) {
+ public ValidationResult apply(String value, ValueContext context) {
if (value == null) {
return toResult(value, true);
}
- Result<?> lengthCheck = validator.apply(value.length(), context);
+ ValidationResult lengthCheck = validator.apply(value.length(), context);
return toResult(value, !lengthCheck.isError());
}
diff --git a/server/src/main/java/com/vaadin/ui/AbstractDateField.java b/server/src/main/java/com/vaadin/ui/AbstractDateField.java
index bb90ce53be..6e59d9bbe0 100644
--- a/server/src/main/java/com/vaadin/ui/AbstractDateField.java
+++ b/server/src/main/java/com/vaadin/ui/AbstractDateField.java
@@ -30,6 +30,7 @@ import java.util.logging.Logger;
import org.jsoup.nodes.Element;
import com.vaadin.data.Result;
+import com.vaadin.data.ValidationResult;
import com.vaadin.data.util.converter.ValueContext;
import com.vaadin.data.validator.DateRangeValidator;
import com.vaadin.event.FieldEvents.BlurEvent;
@@ -678,7 +679,7 @@ public abstract class AbstractDateField extends AbstractField<LocalDate>
getDateOutOfRangeMessage(),
getDate(getRangeStart(), getResolution()),
getDate(getRangeEnd(), getResolution()));
- Result<LocalDate> result = validator.apply(value,
+ ValidationResult result = validator.apply(value,
new ValueContext(this));
if (result.isError()) {
setComponentError(new UserError(getDateOutOfRangeMessage()));