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;
 


Reply via email to