Author: knopp Date: Sat Jun 23 14:58:51 2007 New Revision: 550118 URL: http://svn.apache.org/viewvc?view=rev&rev=550118 Log: WICKET-686
Added: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/INullAcceptingValidator.java Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/IValidator.java incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java?view=diff&rev=550118&r1=550117&r2=550118 ============================================================================== --- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java (original) +++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java Sat Jun 23 14:58:51 2007 @@ -41,6 +41,7 @@ import org.apache.wicket.util.string.Strings; import org.apache.wicket.util.string.interpolator.MapVariableInterpolator; import org.apache.wicket.validation.IErrorMessageSource; +import org.apache.wicket.validation.INullAcceptingValidator; import org.apache.wicket.validation.IValidatable; import org.apache.wicket.validation.IValidationError; import org.apache.wicket.validation.IValidator; @@ -1009,7 +1010,7 @@ { convert(); - if (isValid() && getConvertedInput() != null) + if (isValid()) { validateValidators(); } @@ -1366,12 +1367,18 @@ int i = 0; IValidator validator = null; + boolean isNull = getConvertedInput() == null; + try { for (i = 0; i < size; i++) { validator = validators_get(i); - validator.validate(validatable); + + if (isNull == false || validator instanceof INullAcceptingValidator) + { + validator.validate(validatable); + } if (!isValid()) { break; Added: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/INullAcceptingValidator.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/INullAcceptingValidator.java?view=auto&rev=550118 ============================================================================== --- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/INullAcceptingValidator.java (added) +++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/INullAcceptingValidator.java Sat Jun 23 14:58:51 2007 @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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.apache.wicket.validation; + +/** + * Marker interface for validators that will accept <code>null</code> value. + * Without implementing this interface wicket will never pass <code>null</code> + * value to [EMAIL PROTECTED] IValidator#validate(IValidatable)}. + * <p> + * Keep in mind that the form component must have set the required property to + * <code>false</code>, otherwise wicket will not permit the validator to + * process the <code>null</code> value. + * + * @see IValidator + * @see org.apache.wicket.markup.html.form.FormComponent#setRequired(boolean) + * + * @author Matej Knopp + */ +public interface INullAcceptingValidator extends IValidator +{ + +} Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/IValidator.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/IValidator.java?view=diff&rev=550118&r1=550117&r2=550118 ============================================================================== --- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/IValidator.java (original) +++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/IValidator.java Sat Jun 23 14:58:51 2007 @@ -20,6 +20,10 @@ /** * A validator that can validate a [EMAIL PROTECTED] IValidatable} object. + * <p> + * Unless the validator implements also the [EMAIL PROTECTED] INullAcceptingValidator} + * interface, wicket will not pass null value to the + * [EMAIL PROTECTED] IValidator#validate(IValidatable)} method. * * * @author Jonathan Locke Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java?view=diff&rev=550118&r1=550117&r2=550118 ============================================================================== --- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java (original) +++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java Sat Jun 23 14:58:51 2007 @@ -22,6 +22,7 @@ import org.apache.wicket.IClusterable; import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.util.lang.Classes; +import org.apache.wicket.validation.INullAcceptingValidator; import org.apache.wicket.validation.IValidatable; import org.apache.wicket.validation.IValidator; import org.apache.wicket.validation.ValidationError; @@ -45,7 +46,7 @@ * @author Igor Vaynberg (ivaynbeg) * */ -public abstract class AbstractValidator implements IValidator, IClusterable +public abstract class AbstractValidator implements INullAcceptingValidator, IClusterable { private static final long serialVersionUID = 1L;