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); } /**
