All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.vaadin.data.validator.StringLengthValidator Maven / Gradle / Ivy

There is a newer version: 8.27.3
Show newest version
/*
 * Copyright (C) 2000-2024 Vaadin Ltd
 *
 * This program is available under Vaadin Commercial License and Service Terms.
 *
 * See  for the full
 * license.
 */

package com.vaadin.data.validator;

import com.vaadin.data.ValidationResult;
import com.vaadin.data.ValueContext;

/**
 * Verifies that the length of a string is within the given range.
 *
 * @author Vaadin Ltd.
 * @since 8.0
 */
@SuppressWarnings("serial")
public class StringLengthValidator extends AbstractValidator {

    private final RangeValidator validator;

    /**
     * Creates a new StringLengthValidator with a given error message and
     * minimum and maximum length limits.
     *
     * @param errorMessage
     *            the error message to return if validation fails
     * @param minLength
     *            the minimum permissible length of the string or null for no
     *            limit.
     * @param maxLength
     *            the maximum permissible length of the string or null for no
     *            limit.
     */
    public StringLengthValidator(String errorMessage, Integer minLength,
            Integer maxLength) {
        super(errorMessage);
        validator = RangeValidator.of(errorMessage, minLength, maxLength);
    }

    @Override
    public ValidationResult apply(String value, ValueContext context) {
        if (value == null) {
            return toResult(value, true);
        }
        ValidationResult lengthCheck = validator.apply(value.length(), context);
        return toResult(value, !lengthCheck.isError());
    }

    /**
     * Gets the maximum permissible length of the string.
     *
     * @return the maximum length of the string or null if there is no limit
     */
    public Integer getMaxLength() {
        return validator.getMaxValue();
    }

    /**
     * Gets the minimum permissible length of the string.
     *
     * @return the minimum length of the string or null if there is no limit
     */
    public Integer getMinLength() {
        return validator.getMinValue();
    }

    /**
     * Sets the maximum permissible length of the string.
     *
     * @param maxLength
     *            the maximum length to accept or null for no limit
     */
    public void setMaxLength(Integer maxLength) {
        validator.setMaxValue(maxLength);
    }

    /**
     * Sets the minimum permissible length.
     *
     * @param minLength
     *            the minimum length to accept or null for no limit
     */
    public void setMinLength(Integer minLength) {
        validator.setMaxValue(minLength);
    }

    @Override
    public String toString() {
        return String.format("%s[%d, %d]", getClass().getSimpleName(),
                getMinLength(), getMaxLength());
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy