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

org.springframework.validation.Validator Maven / Gradle / Ivy

There is a newer version: 5.3.34
Show newest version
/*
 * Copyright 2002-2007 the original author or authors.
 * 
 * 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 org.springframework.validation;

/**
 * A validator for application-specific objects.
 * 
 * 

This interface is totally divorced from any infrastructure * or context; that is to say it is not coupled to validating * only objects in the web tier, the data-access tier, or the * whatever-tier. As such it is amenable to being used in any layer * of an application, and supports the encapsulation of validation * logic as first-class citizens in their own right. * *

Find below a simple but complete Validator * implementation, which validates that the various {@link String} * properties of a UserLogin instance are not empty * (that is they are not null and do not consist * wholly of whitespace), and that any password that is present is * at least 'MINIMUM_PASSWORD_LENGTH' characters in length. * *

 public class UserLoginValidator implements Validator {
 * 
 *    private static final int MINIMUM_PASSWORD_LENGTH = 6;
 * 
 *    public boolean supports(Class clazz) {
 *       return UserLogin.class.isAssignableFrom(clazz);
 *    }
 * 
 *    public void validate(Object target, Errors errors) {
 *       ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userName", "field.required");
 *       ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "field.required");
 *       UserLogin login = (UserLogin) target;
 *       if (login.getPassword() != null
 *             && login.getPassword().trim().length() < MINIMUM_PASSWORD_LENGTH) {
 *          errors.rejectValue("password", "field.min.length",
 *                new Object[]{Integer.valueOf(MINIMUM_PASSWORD_LENGTH)},
 *                "The password must be at least [" + MINIMUM_PASSWORD_LENGTH + "] characters in length.");
 *       }
 *    }
 * }
* *

See also the Spring reference manual for a fuller discussion of * the Validator interface and it's role in a enterprise * application. * * @author Rod Johnson * @see Errors * @see ValidationUtils */ public interface Validator { /** * Can this {@link Validator} {@link #validate(Object, Errors) validate} * instances of the supplied clazz? *

This method is typically implemented like so: *

return Foo.class.isAssignableFrom(clazz);
* (Where Foo is the class (or superclass) of the actual * object instance that is to be {@link #validate(Object, Errors) validated}.) * @param clazz the {@link Class} that this {@link Validator} is * being asked if it can {@link #validate(Object, Errors) validate} * @return true if this {@link Validator} can indeed * {@link #validate(Object, Errors) validate} instances of the * supplied clazz */ boolean supports(Class clazz); /** * Validate the supplied target object, which must be * of a {@link Class} for which the {@link #supports(Class)} method * typically has (or would) return true. *

The supplied {@link Errors errors} instance can be used to report * any resulting validation errors. * @param target the object that is to be validated (can be null) * @param errors contextual state about the validation process (never null) * @see ValidationUtils */ void validate(Object target, Errors errors); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy