Search in sources :

Example 1 with Validator

use of com.vaadin.flow.data.binder.Validator in project flow by vaadin.

the class BeanValidator method apply.

/**
 * Validates the given value as if it were the value of the bean property
 * configured for this validator. Returns {@code Result.ok} if there are no
 * JSR-303 constraint violations, a {@code Result.error} of chained
 * constraint violation messages otherwise.
 * <p>
 * Null values are accepted unless the property has an {@code @NotNull}
 * annotation or equivalent.
 *
 * @param value
 *            the input value to validate
 * @param context
 *            the value context for validation
 * @return the validation result
 */
@Override
public ValidationResult apply(final Object value, ValueContext context) {
    Set<? extends ConstraintViolation<?>> violations = getJavaxBeanValidator().validateValue(beanType, propertyName, value);
    Locale locale = context.getLocale().orElse(Locale.getDefault());
    Optional<ValidationResult> result = violations.stream().map(violation -> ValidationResult.error(getMessage(violation, locale))).findFirst();
    return result.orElse(ValidationResult.ok());
}
Also used : Locale(java.util.Locale) Validator(com.vaadin.flow.data.binder.Validator) ConstraintDescriptor(javax.validation.metadata.ConstraintDescriptor) Context(javax.validation.MessageInterpolator.Context) Set(java.util.Set) ValidatorFactory(javax.validation.ValidatorFactory) Serializable(java.io.Serializable) Objects(java.util.Objects) ValidationResult(com.vaadin.flow.data.binder.ValidationResult) Locale(java.util.Locale) Optional(java.util.Optional) Validation(javax.validation.Validation) ValueContext(com.vaadin.flow.data.binder.ValueContext) BeanUtil(com.vaadin.flow.internal.BeanUtil) ConstraintViolation(javax.validation.ConstraintViolation) ValidationResult(com.vaadin.flow.data.binder.ValidationResult)

Aggregations

ValidationResult (com.vaadin.flow.data.binder.ValidationResult)1 Validator (com.vaadin.flow.data.binder.Validator)1 ValueContext (com.vaadin.flow.data.binder.ValueContext)1 BeanUtil (com.vaadin.flow.internal.BeanUtil)1 Serializable (java.io.Serializable)1 Locale (java.util.Locale)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 Set (java.util.Set)1 ConstraintViolation (javax.validation.ConstraintViolation)1 Context (javax.validation.MessageInterpolator.Context)1 Validation (javax.validation.Validation)1 ValidatorFactory (javax.validation.ValidatorFactory)1 ConstraintDescriptor (javax.validation.metadata.ConstraintDescriptor)1