Updated Branches:
  refs/heads/master 6567bbef9 -> cdcfcbdb8

WICKET-4449 Change IValidationError API to work with java.io.Serializable as 
other methods (info, error, success, ...) in Component and Session


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/cdcfcbdb
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/cdcfcbdb
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/cdcfcbdb

Branch: refs/heads/master
Commit: cdcfcbdb8c2e51d045cd6dd4c83ab76533306e36
Parents: 6567bbe
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Mar 15 10:20:04 2012 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu Mar 15 10:21:16 2012 +0200

----------------------------------------------------------------------
 .../wicket/markup/html/form/FormComponent.java     |    7 +-
 .../markup/html/form/ValidationErrorFeedback.java  |   27 ++------
 .../apache/wicket/validation/IValidationError.java |    6 +-
 .../wicket/validation/RawValidationError.java      |   53 +++++++++++++++
 .../apache/wicket/validation/ValidationError.java  |    6 +-
 5 files changed, 71 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/cdcfcbdb/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
index 31877ba..a0d3cf3 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.markup.html.form;
 
+import java.io.Serializable;
 import java.text.Format;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -626,7 +627,7 @@ public abstract class FormComponent<T> extends 
LabeledWebMarkupContainer
                Args.notNull(error, "error");
 
                MessageSource source = new MessageSource();
-               String message = error.getErrorMessage(source);
+               Serializable message = error.getErrorMessage(source);
 
                if (message == null)
                {
@@ -649,9 +650,9 @@ public abstract class FormComponent<T> extends 
LabeledWebMarkupContainer
                        }
                        buffer.append(".");
                        message = buffer.toString();
-                       logger.warn(message);
+                       logger.warn(message.toString());
                }
-               error(new ValidationErrorFeedback(error, message));
+               error(message);
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/cdcfcbdb/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ValidationErrorFeedback.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ValidationErrorFeedback.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ValidationErrorFeedback.java
index 42804a7..0e5ed8f 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ValidationErrorFeedback.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/ValidationErrorFeedback.java
@@ -20,6 +20,7 @@ import java.io.Serializable;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.util.io.IClusterable;
+import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.validation.IValidationError;
 
 
@@ -39,7 +40,7 @@ public class ValidationErrorFeedback implements IClusterable
        private final IValidationError error;
 
        /** error message */
-       private final String message;
+       private final Serializable message;
 
        /**
         * Construct.
@@ -47,27 +48,13 @@ public class ValidationErrorFeedback implements IClusterable
         * @param error
         * @param message
         */
-       public ValidationErrorFeedback(final IValidationError error, final 
String message)
+       public ValidationErrorFeedback(final IValidationError error, final 
Serializable message)
        {
-               if (error == null)
-               {
-                       throw new IllegalArgumentException("Argument [[error]] 
cannot be null");
-               }
-               this.error = error;
+               this.error = Args.notNull(error, "error");
                this.message = message;
        }
 
        /**
-        * Gets serialVersionUID.
-        * 
-        * @return serialVersionUID
-        */
-       public static long getSerialVersionUID()
-       {
-               return serialVersionUID;
-       }
-
-       /**
         * Gets error.
         * 
         * @return error
@@ -82,7 +69,7 @@ public class ValidationErrorFeedback implements IClusterable
         * 
         * @return message
         */
-       public String getMessage()
+       public Serializable getMessage()
        {
                return message;
        }
@@ -93,8 +80,6 @@ public class ValidationErrorFeedback implements IClusterable
        @Override
        public String toString()
        {
-               return message;
+               return message.toString();
        }
-
-
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/cdcfcbdb/wicket-core/src/main/java/org/apache/wicket/validation/IValidationError.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/validation/IValidationError.java 
b/wicket-core/src/main/java/org/apache/wicket/validation/IValidationError.java
index 8f9e743..f7f4bdb 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/validation/IValidationError.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/validation/IValidationError.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.validation;
 
+import java.io.Serializable;
+
 import org.apache.wicket.util.io.IClusterable;
 
 /**
@@ -31,7 +33,7 @@ public interface IValidationError extends IClusterable
         * 
         * @param messageSource
         *            the message source
-        * @return the error message <code>String</code>
+        * @return the error message
         */
-       String getErrorMessage(IErrorMessageSource messageSource);
+       Serializable getErrorMessage(IErrorMessageSource messageSource);
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/cdcfcbdb/wicket-core/src/main/java/org/apache/wicket/validation/RawValidationError.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/validation/RawValidationError.java
 
b/wicket-core/src/main/java/org/apache/wicket/validation/RawValidationError.java
new file mode 100644
index 0000000..7b0b4e5
--- /dev/null
+++ 
b/wicket-core/src/main/java/org/apache/wicket/validation/RawValidationError.java
@@ -0,0 +1,53 @@
+/*
+ * 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;
+
+import java.io.Serializable;
+
+import org.apache.wicket.util.lang.Args;
+
+/**
+ * An IValidationError implementation that just keeps a Serializable
+ * error message. Use it with a custom FeedbackPanel implementation
+ * that knows how to render such error message.
+ *
+ * @since 6.0
+ * @see org.apache.wicket.Component#error(java.io.Serializable)
+ * @see org.apache.wicket.Session#error(java.io.Serializable)
+ * @see org.apache.wicket.markup.html.panel.FeedbackPanel
+ */
+public class RawValidationError implements IValidationError
+{
+       private final Serializable errorMessage;
+
+       /**
+        * Constructor.
+        *
+        * @param errorMessage
+        *      the custom error message that will be rendered by a custom 
FeedbackPanel
+        */
+       public RawValidationError(final Serializable errorMessage)
+       {
+               this.errorMessage = Args.notNull(errorMessage, "errorMessage");
+       }
+
+       @Override
+       public Serializable getErrorMessage(@SuppressWarnings("unused") 
IErrorMessageSource messageSource)
+       {
+               return errorMessage;
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/cdcfcbdb/wicket-core/src/main/java/org/apache/wicket/validation/ValidationError.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/validation/ValidationError.java 
b/wicket-core/src/main/java/org/apache/wicket/validation/ValidationError.java
index 6cebe57..f9a2e8c 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/validation/ValidationError.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/validation/ValidationError.java
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.validation;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -24,6 +25,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
+import org.apache.wicket.markup.html.form.ValidationErrorFeedback;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
 
@@ -233,7 +235,7 @@ public final class ValidationError implements 
IValidationError
         * @see IValidationError#getErrorMessage(IErrorMessageSource)
         */
        @Override
-       public final String getErrorMessage(IErrorMessageSource messageSource)
+       public final Serializable getErrorMessage(IErrorMessageSource 
messageSource)
        {
                String errorMessage = null;
 
@@ -262,7 +264,7 @@ public final class ValidationError implements 
IValidationError
                        final Map<String, Object> p = (vars != null) ? vars : 
EMPTY_VARS;
                        errorMessage = messageSource.substitute(errorMessage, 
p);
                }
-               return errorMessage;
+               return new ValidationErrorFeedback(this, errorMessage);
        }
 
        /**

Reply via email to