/* * Copyright 2008 biaoping.yin * * 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.frameworkset.spi.support.validate; /** * <p>Title: Validator.java</p> * <p>Description: </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2008</p> * @Date 2010-10-12 * @author biaoping.yin * @version 1.0 */ public interface Validator { /** * Can this {@link Validator} {@link #validate(Object, Errors) validate} * instances of the supplied <code>clazz</code>? * <p>This method is <i>typically</i> implemented like so: * <pre class="code">return Foo.class.isAssignableFrom(clazz);</pre> * (Where <code>Foo</code> 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 <code>true</code> if this {@link Validator} can indeed * {@link #validate(Object, Errors) validate} instances of the * supplied <code>clazz</code> */ boolean supports(Class clazz); /** * Validate the supplied <code>target</code> object, which must be * of a {@link Class} for which the {@link #supports(Class)} method * typically has (or would) return <code>true</code>. * <p>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 <code>null</code>) * @param errors contextual state about the validation process (never <code>null</code>) * @see ValidationUtils */ void validate(Object target, Errors errors); }