Author: ivaynberg Date: Mon Sep 24 15:09:57 2007 New Revision: 578993 URL: http://svn.apache.org/viewvc?rev=578993&view=rev Log: WICKET-961: Add variables to ConversionException
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConversionException.java Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java?rev=578993&r1=578992&r2=578993&view=diff ============================================================================== --- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java (original) +++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java Mon Sep 24 15:09:57 2007 @@ -1163,6 +1163,12 @@ error.setVariable("format", ((SimpleDateFormat)format).toLocalizedPattern()); } + Map variables = e.getVariables(); + if (variables != null) + { + error.getVariables().putAll(variables); + } + error((IValidationError)error); } Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConversionException.java URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConversionException.java?rev=578993&r1=578992&r2=578993&view=diff ============================================================================== --- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConversionException.java (original) +++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConversionException.java Mon Sep 24 15:09:57 2007 @@ -17,7 +17,9 @@ package org.apache.wicket.util.convert; import java.text.Format; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.util.lang.Classes; @@ -46,10 +48,13 @@ /** Target type for the failed conversion. */ private String targetTypeName; - + /** Resource key for the message that should be displayed */ private String resourceKey; + /** Variable map to use in variable substitution */ + private Map vars; + /** * Construct exception with message. * @@ -225,5 +230,45 @@ return this; } + /** + * Sets a variable that will be used in substitution + * + * @param name + * variable name + * @param value + * variable value + * @return this for chaining + */ + public ConversionException setVariable(String name, Object value) + { + if (name == null || name.trim().length() == 0) + { + throw new IllegalArgumentException( + "Argument [[name]] cannot be null or an empty string"); + } + if (value == null) + { + throw new IllegalArgumentException( + "Argument [[value]] cannot be null or an empty string"); + } + + if (vars == null) + { + vars = new HashMap(2); + } + vars.put(name, value); + + return this; + } + + /** + * Returns the map of variables for this exception. + * + * @return map of variables for this exception (or null if no variables were defined) + */ + public Map getVariables() + { + return vars; + } }