You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/11/14 19:08:19 UTC

svn commit: r1035037 - in /wicket/trunk: testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/ wicket-examples/src/main/java/org/apache/wicket/examples/forminput/ wicket-extensions/src/main/java/org/apache/wicket/extensions/aj...

Author: mgrigorov
Date: Sun Nov 14 18:08:17 2010
New Revision: 1035037

URL: http://svn.apache.org/viewvc?rev=1035037&view=rev
Log:
WICKET-1568 contribution for wicket 1.5 generics (IConverter)

Add generics to IConverter and all related classes

Modified:
    wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/Home.java
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/IConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/MaskConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractDecimalConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractIntegerConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractNumberConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BigDecimalConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BooleanConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ByteConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/CharacterConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DateConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DoubleConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/FloatConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/IntegerConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/LongConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ShortConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlDateConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimeConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimestampConverter.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ZeroPaddingIntegerConverter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ConverterLocator.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/IConverterLocator.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java

Modified: wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/Home.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/Home.java (original)
+++ wicket/trunk/testing/wicket-threadtest/src/main/java/org/apache/wicket/threadtest/apps/app1/Home.java Sun Nov 14 18:08:17 2010
@@ -172,38 +172,47 @@ public class Home extends WebPage
 			{
 				private static final long serialVersionUID = 1L;
 
+				@SuppressWarnings("unchecked")
 				@Override
-				public IConverter getConverter(Class<?> clazz)
+				public <C> IConverter<C> getConverter(Class<C> clazz)
 				{
-					return new IConverter()
+					if (URL.class.isAssignableFrom(clazz))
 					{
-						private static final long serialVersionUID = 1L;
-
-						/**
-						 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,
-						 *      java.util.Locale)
-						 */
-						public URL convertToObject(String value, Locale locale)
+						return (IConverter<C>)new IConverter<URL>()
 						{
-							try
+							private static final long serialVersionUID = 1L;
+
+							/**
+							 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,
+							 *      java.util.Locale)
+							 */
+							public URL convertToObject(String value, Locale locale)
 							{
-								return new URL(value.toString());
+								try
+								{
+									return new URL(value.toString());
+								}
+								catch (MalformedURLException e)
+								{
+									throw new ConversionException("'" + value +
+										"' is not a valid URL");
+								}
 							}
-							catch (MalformedURLException e)
+
+							/**
+							 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object,
+							 *      java.util.Locale)
+							 */
+							public String convertToString(URL value, Locale locale)
 							{
-								throw new ConversionException("'" + value + "' is not a valid URL");
+								return value != null ? value.toString() : null;
 							}
-						}
-
-						/**
-						 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object,
-						 *      java.util.Locale)
-						 */
-						public String convertToString(Object value, Locale locale)
-						{
-							return value != null ? value.toString() : null;
-						}
-					};
+						};
+					}
+					else
+					{
+						return super.getConverter(clazz);
+					}
 				}
 			});
 
@@ -212,9 +221,9 @@ public class Home extends WebPage
 				private static final long serialVersionUID = 1L;
 
 				@Override
-				public IConverter getConverter(Class<?> clazz)
+				public <C> IConverter<C> getConverter(Class<C> clazz)
 				{
-					return new MaskConverter("(###) ###-####", UsPhoneNumber.class);
+					return new MaskConverter<C>("(###) ###-####", UsPhoneNumber.class);
 				}
 			});
 

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInput.java Sun Nov 14 18:08:17 2010
@@ -70,6 +70,7 @@ public class FormInput extends WicketExa
 		 * @param name
 		 *            Component name
 		 */
+		@SuppressWarnings("serial")
 		public InputForm(String name)
 		{
 			super(name, new CompoundPropertyModel<FormInputModel>(new FormInputModel()));
@@ -147,14 +148,15 @@ public class FormInput extends WicketExa
 			// TextField using a custom converter.
 			add(new TextField<URL>("urlProperty", URL.class)
 			{
+				@SuppressWarnings("unchecked")
 				@Override
-				public IConverter getConverter(final Class<?> type)
+				public <C> IConverter<C> getConverter(final Class<C> type)
 				{
 					if (URL.class.isAssignableFrom(type))
 					{
-						return new IConverter()
+						return (IConverter<C>)new IConverter<URL>()
 						{
-							public Object convertToObject(String value, Locale locale)
+							public URL convertToObject(String value, Locale locale)
 							{
 								try
 								{
@@ -167,7 +169,7 @@ public class FormInput extends WicketExa
 								}
 							}
 
-							public String convertToString(Object value, Locale locale)
+							public String convertToString(URL value, Locale locale)
 							{
 								return value != null ? value.toString() : null;
 							}
@@ -185,12 +187,12 @@ public class FormInput extends WicketExa
 			{
 
 				@Override
-				public IConverter getConverter(final Class<?> type)
+				public <C> IConverter<C> getConverter(final Class<C> type)
 				{
 					if (UsPhoneNumber.class.isAssignableFrom(type))
 					{
 						// US telephone number mask
-						return new MaskConverter("(###) ###-####", UsPhoneNumber.class);
+						return new MaskConverter<C>("(###) ###-####", UsPhoneNumber.class);
 					}
 					else
 					{

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java Sun Nov 14 18:08:17 2010
@@ -231,9 +231,9 @@ public class AjaxEditableChoiceLabel<T> 
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			public IConverter getConverter(Class<?> type)
+			public <C> IConverter<C> getConverter(Class<C> type)
 			{
-				IConverter c = AjaxEditableChoiceLabel.this.getConverter(type);
+				IConverter<C> c = AjaxEditableChoiceLabel.this.getConverter(type);
 				return c != null ? c : super.getConverter(type);
 			}
 

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java Sun Nov 14 18:08:17 2010
@@ -213,7 +213,7 @@ public class AjaxEditableLabel<T> extend
 	 * @see org.apache.wicket.Component#getConverter(java.lang.Class)
 	 */
 	@Override
-	public IConverter getConverter(Class<?> type)
+	public <C> IConverter<C> getConverter(Class<C> type)
 	{
 		return null;
 	}
@@ -286,9 +286,9 @@ public class AjaxEditableLabel<T> extend
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			public IConverter getConverter(Class<?> type)
+			public <C> IConverter<C> getConverter(Class<C> type)
 			{
-				IConverter c = AjaxEditableLabel.this.getConverter(type);
+				IConverter<C> c = AjaxEditableLabel.this.getConverter(type);
 				return c != null ? c : super.getConverter(type);
 			}
 
@@ -330,9 +330,9 @@ public class AjaxEditableLabel<T> extend
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			public IConverter getConverter(Class<?> type)
+			public <C> IConverter<C> getConverter(Class<C> type)
 			{
-				IConverter c = AjaxEditableLabel.this.getConverter(type);
+				IConverter<C> c = AjaxEditableLabel.this.getConverter(type);
 				return c != null ? c : super.getConverter(type);
 			}
 

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/DateTextField.java Sun Nov 14 18:08:17 2010
@@ -54,7 +54,7 @@ public class DateTextField extends TextF
 	/**
 	 * The converter for the TextField
 	 */
-	private IConverter converter = null;
+	private IConverter<?> converter = null;
 
 	/**
 	 * Creates a new DateTextField, without a specified pattern. This is the same as calling
@@ -148,7 +148,7 @@ public class DateTextField extends TextF
 	 * @see org.apache.wicket.markup.html.form.TextField
 	 */
 	@Override
-	public IConverter getConverter(Class<?> type)
+	public <C> IConverter<C> getConverter(Class<C> type)
 	{
 		if (converter == null)
 		{
@@ -156,7 +156,7 @@ public class DateTextField extends TextF
 		}
 		else
 		{
-			return converter;
+			return (IConverter<C>)converter;
 		}
 	}
 

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/component/AbstractOptions.java Sun Nov 14 18:08:17 2010
@@ -24,6 +24,7 @@ import org.apache.wicket.markup.Componen
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.markup.html.form.IChoiceRenderer;
+import org.apache.wicket.util.convert.IConverter;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.apache.wicket.util.string.JavascriptUtils;
 import org.apache.wicket.util.string.Strings;
@@ -99,8 +100,8 @@ public abstract class AbstractOptions<T>
 				Object displayValue = renderer.getDisplayValue(choice);
 				Class<?> displayClass = displayValue == null ? null : displayValue.getClass();
 
-				String displayString = getConverter(displayClass).convertToString(displayValue,
-					getLocale());
+				IConverter<Object> converter = (IConverter<Object>)getConverter(displayClass);
+				String displayString = converter.convertToString(displayValue, getLocale());
 				displayString = getLocalizer().getString(displayString, this, displayString);
 
 				if (getEscapeModelStrings())
@@ -165,10 +166,10 @@ public abstract class AbstractOptions<T>
 	}
 
 	/**
-	* A piece of javascript to avoid serializing the options during AJAX
-	* serialization.
-	*/
-	protected void avoidAjaxSerialization() {
+	 * A piece of javascript to avoid serializing the options during AJAX serialization.
+	 */
+	protected void avoidAjaxSerialization()
+	{
 		getResponse().write(
 			JavascriptUtils.SCRIPT_OPEN_TAG +
 				"if (typeof(Wicket) != \"undefined\" && typeof(Wicket.Form) != \"undefined\")" +

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/IConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/IConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/IConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/IConverter.java Sun Nov 14 18:08:17 2010
@@ -43,7 +43,7 @@ import org.apache.wicket.IClusterable;
  * @author Jonathan Locke
  * 
  */
-public interface IConverter extends IClusterable
+public interface IConverter<C> extends IClusterable
 {
 	/**
 	 * Converts the given {@link String} value
@@ -54,7 +54,7 @@ public interface IConverter extends IClu
 	 *            The locale used to convert the value
 	 * @return The converted value
 	 */
-	Object convertToObject(String value, Locale locale);
+	C convertToObject(String value, Locale locale);
 
 	/**
 	 * Converts the given value to a string.
@@ -66,5 +66,5 @@ public interface IConverter extends IClu
 	 * 
 	 * @return The converted string value
 	 */
-	String convertToString(Object value, Locale locale);
+	String convertToString(C value, Locale locale);
 }
\ No newline at end of file

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/MaskConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/MaskConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/MaskConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/MaskConverter.java Sun Nov 14 18:08:17 2010
@@ -85,7 +85,7 @@ import javax.swing.text.MaskFormatter;
  * 
  * @author Eelco Hillenius
  */
-public class MaskConverter implements IConverter
+public class MaskConverter<C> implements IConverter<C>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -149,11 +149,11 @@ public class MaskConverter implements IC
 	 * 
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String, Locale)
 	 */
-	public Object convertToObject(String value, Locale locale)
+	public C convertToObject(String value, Locale locale)
 	{
 		try
 		{
-			return maskFormatter.stringToValue(value);
+			return (C)maskFormatter.stringToValue(value);
 		}
 		catch (ParseException e)
 		{
@@ -166,7 +166,7 @@ public class MaskConverter implements IC
 	 * 
 	 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object, Locale)
 	 */
-	public String convertToString(Object value, Locale locale)
+	public String convertToString(C value, Locale locale)
 	{
 		try
 		{

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractConverter.java Sun Nov 14 18:08:17 2010
@@ -30,7 +30,7 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * 
  */
-public abstract class AbstractConverter implements IConverter
+public abstract class AbstractConverter<C> implements IConverter<C>
 {
 	/** */
 	private static final long serialVersionUID = 1L;
@@ -48,11 +48,11 @@ public abstract class AbstractConverter 
 	 * @throws ConversionException
 	 *             Thrown if parsing fails
 	 */
-	protected Object parse(final Format format, final Object value, Locale locale)
+	protected C parse(final Format format, final Object value, Locale locale)
 	{
 		final ParsePosition position = new ParsePosition(0);
 		final String stringValue = value.toString();
-		final Object result = format.parseObject(stringValue, position);
+		final C result = (C)format.parseObject(stringValue, position);
 		if (position.getIndex() != stringValue.length())
 		{
 			throw newConversionException("Cannot parse '" + value + "' using format " + format,
@@ -84,12 +84,12 @@ public abstract class AbstractConverter 
 	/**
 	 * @return The target type of this type converter
 	 */
-	protected abstract Class<?> getTargetType();
+	protected abstract Class<C> getTargetType();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object, Locale)
 	 */
-	public String convertToString(final Object value, final Locale locale)
+	public String convertToString(final C value, final Locale locale)
 	{
 		if (value == null)
 		{

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractDecimalConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractDecimalConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractDecimalConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractDecimalConverter.java Sun Nov 14 18:08:17 2010
@@ -28,7 +28,7 @@ import java.util.concurrent.ConcurrentHa
  * @author Jonathan Locke
  * 
  */
-public abstract class AbstractDecimalConverter extends AbstractNumberConverter
+public abstract class AbstractDecimalConverter<N extends Number> extends AbstractNumberConverter<N>
 {
 	private static final long serialVersionUID = 1L;
 

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractIntegerConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractIntegerConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractIntegerConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractIntegerConverter.java Sun Nov 14 18:08:17 2010
@@ -27,7 +27,7 @@ import java.util.concurrent.ConcurrentHa
  * @author Jonathan Locke
  * 
  */
-public abstract class AbstractIntegerConverter extends AbstractNumberConverter
+public abstract class AbstractIntegerConverter<I extends Number> extends AbstractNumberConverter<I>
 {
 	private static final long serialVersionUID = 1L;
 

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractNumberConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractNumberConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractNumberConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/AbstractNumberConverter.java Sun Nov 14 18:08:17 2010
@@ -28,7 +28,7 @@ import org.apache.wicket.util.convert.Co
  * @author Jonathan Locke
  * 
  */
-public abstract class AbstractNumberConverter extends AbstractConverter
+public abstract class AbstractNumberConverter<N extends Number> extends AbstractConverter<N>
 {
 	/**
 	 * 
@@ -56,7 +56,7 @@ public abstract class AbstractNumberConv
 	 * @throws ConversionException
 	 *             if value is unparsable or out of range
 	 */
-	protected Number parse(Object value, final double min, final double max, Locale locale)
+	protected N parse(Object value, final double min, final double max, Locale locale)
 	{
 		if (locale == null)
 		{
@@ -77,7 +77,7 @@ public abstract class AbstractNumberConv
 		}
 
 		final NumberFormat numberFormat = getNumberFormat(locale);
-		final Number number = (Number)parse(numberFormat, value, locale);
+		final N number = parse(numberFormat, value, locale);
 
 		if (number == null)
 		{
@@ -100,10 +100,10 @@ public abstract class AbstractNumberConv
 	}
 
 	/**
-	 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object, Locale)
+	 * @see org.apache.wicket.util.convert.IConverter#convertToString(C, Locale)
 	 */
 	@Override
-	public String convertToString(final Object value, Locale locale)
+	public String convertToString(final Number value, Locale locale)
 	{
 		NumberFormat fmt = getNumberFormat(locale);
 		if (fmt != null)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BigDecimalConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BigDecimalConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BigDecimalConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BigDecimalConverter.java Sun Nov 14 18:08:17 2010
@@ -24,7 +24,7 @@ import java.util.Locale;
  * 
  * see IConverter
  */
-public class BigDecimalConverter extends AbstractDecimalConverter
+public class BigDecimalConverter extends AbstractDecimalConverter<BigDecimal>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -32,7 +32,7 @@ public class BigDecimalConverter extends
 	 * @see org.apache.wicket.util.convert.converters.AbstractConverter#getTargetType()
 	 */
 	@Override
-	protected Class<?> getTargetType()
+	protected Class<BigDecimal> getTargetType()
 	{
 		return BigDecimal.class;
 	}

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BooleanConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BooleanConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BooleanConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/BooleanConverter.java Sun Nov 14 18:08:17 2010
@@ -29,19 +29,19 @@ import org.apache.wicket.util.string.Str
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class BooleanConverter extends AbstractConverter
+public class BooleanConverter extends AbstractConverter<Boolean>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a boolean converter
 	 */
-	public static final IConverter INSTANCE = new BooleanConverter();
+	public static final IConverter<Boolean> INSTANCE = new BooleanConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)
 	 */
-	public Object convertToObject(final String value, Locale locale)
+	public Boolean convertToObject(final String value, Locale locale)
 	{
 		try
 		{
@@ -57,7 +57,7 @@ public class BooleanConverter extends Ab
 	 * @see org.apache.wicket.util.convert.converter.AbstractConverter#getTargetType()
 	 */
 	@Override
-	protected Class<?> getTargetType()
+	protected Class<Boolean> getTargetType()
 	{
 		return Boolean.class;
 	}

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ByteConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ByteConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ByteConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ByteConverter.java Sun Nov 14 18:08:17 2010
@@ -27,19 +27,19 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class ByteConverter extends AbstractIntegerConverter
+public class ByteConverter extends AbstractIntegerConverter<Byte>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a byte converter
 	 */
-	public static final IConverter INSTANCE = new ByteConverter();
+	public static final IConverter<Byte> INSTANCE = new ByteConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)
 	 */
-	public Object convertToObject(final String value, Locale locale)
+	public Byte convertToObject(final String value, Locale locale)
 	{
 		final Number number = parse(value, Byte.MIN_VALUE, Byte.MAX_VALUE, locale);
 
@@ -55,7 +55,7 @@ public class ByteConverter extends Abstr
 	 * @see org.apache.wicket.util.convert.converter.AbstractConverter#getTargetType()
 	 */
 	@Override
-	protected Class<?> getTargetType()
+	protected Class<Byte> getTargetType()
 	{
 		return Byte.class;
 	}

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/CharacterConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/CharacterConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/CharacterConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/CharacterConverter.java Sun Nov 14 18:08:17 2010
@@ -27,19 +27,19 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class CharacterConverter extends AbstractConverter
+public class CharacterConverter extends AbstractConverter<Character>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a character converter
 	 */
-	public static final IConverter INSTANCE = new CharacterConverter();
+	public static final IConverter<Character> INSTANCE = new CharacterConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)
 	 */
-	public Object convertToObject(final String value, Locale locale)
+	public Character convertToObject(final String value, Locale locale)
 	{
 		int length = value.length();
 		if (length == 0)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DateConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DateConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DateConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DateConverter.java Sun Nov 14 18:08:17 2010
@@ -27,7 +27,7 @@ import org.apache.wicket.util.string.Str
  * 
  * @author Eelco Hillenius
  */
-public class DateConverter extends AbstractConverter
+public class DateConverter extends AbstractConverter<Date>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -42,7 +42,7 @@ public class DateConverter extends Abstr
 		}
 		else
 		{
-			return (Date)parse(getDateFormat(locale), value, locale);
+			return parse(getDateFormat(locale), value, locale);
 		}
 	}
 
@@ -50,7 +50,7 @@ public class DateConverter extends Abstr
 	 * @see org.apache.wicket.util.convert.IConverter#convertToString(Object, java.util.Locale)
 	 */
 	@Override
-	public String convertToString(final Object value, Locale locale)
+	public String convertToString(final Date value, Locale locale)
 	{
 		final DateFormat dateFormat = getDateFormat(locale);
 		if (dateFormat != null)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DoubleConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DoubleConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DoubleConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/DoubleConverter.java Sun Nov 14 18:08:17 2010
@@ -27,14 +27,14 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class DoubleConverter extends AbstractDecimalConverter
+public class DoubleConverter extends AbstractDecimalConverter<Double>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a double converter
 	 */
-	public static final IConverter INSTANCE = new DoubleConverter();
+	public static final IConverter<Double> INSTANCE = new DoubleConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(String, java.util.Locale)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/FloatConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/FloatConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/FloatConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/FloatConverter.java Sun Nov 14 18:08:17 2010
@@ -27,14 +27,14 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class FloatConverter extends AbstractDecimalConverter
+public class FloatConverter extends AbstractDecimalConverter<Float>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a float converter
 	 */
-	public static final IConverter INSTANCE = new FloatConverter();
+	public static final IConverter<Float> INSTANCE = new FloatConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/IntegerConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/IntegerConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/IntegerConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/IntegerConverter.java Sun Nov 14 18:08:17 2010
@@ -27,14 +27,14 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class IntegerConverter extends AbstractIntegerConverter
+public class IntegerConverter extends AbstractIntegerConverter<Integer>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a integer converter
 	 */
-	public static final IConverter INSTANCE = new IntegerConverter();
+	public static final IConverter<Integer> INSTANCE = new IntegerConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/LongConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/LongConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/LongConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/LongConverter.java Sun Nov 14 18:08:17 2010
@@ -27,14 +27,14 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class LongConverter extends AbstractIntegerConverter
+public class LongConverter extends AbstractIntegerConverter<Long>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a long converter
 	 */
-	public static final IConverter INSTANCE = new LongConverter();
+	public static final IConverter<Long> INSTANCE = new LongConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ShortConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ShortConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ShortConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ShortConverter.java Sun Nov 14 18:08:17 2010
@@ -27,14 +27,14 @@ import org.apache.wicket.util.convert.IC
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public class ShortConverter extends AbstractIntegerConverter
+public class ShortConverter extends AbstractIntegerConverter<Short>
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
 	 * The singleton instance for a short converter
 	 */
-	public static final IConverter INSTANCE = new ShortConverter();
+	public static final IConverter<Short> INSTANCE = new ShortConverter();
 
 	/**
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,Locale)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlDateConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlDateConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlDateConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlDateConverter.java Sun Nov 14 18:08:17 2010
@@ -25,7 +25,7 @@ import org.apache.wicket.util.string.Str
 /**
  * Converts to {@link java.sql.Date}.
  */
-public class SqlDateConverter extends AbstractConverter
+public class SqlDateConverter extends AbstractConverter<Date>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -49,7 +49,7 @@ public class SqlDateConverter extends Ab
 	 *      java.util.Locale)
 	 */
 	@Override
-	public String convertToString(final Object value, Locale locale)
+	public String convertToString(final Date value, Locale locale)
 	{
 		final DateFormat dateFormat = getDateFormat(locale);
 		if (dateFormat != null)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimeConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimeConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimeConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimeConverter.java Sun Nov 14 18:08:17 2010
@@ -27,7 +27,7 @@ import org.apache.wicket.util.convert.Co
 /**
  * Converts to {@link Time}.
  */
-public class SqlTimeConverter extends AbstractConverter
+public class SqlTimeConverter extends AbstractConverter<Time>
 {
 
 	private static final long serialVersionUID = 1L;
@@ -60,7 +60,7 @@ public class SqlTimeConverter extends Ab
 	}
 
 	@Override
-	public String convertToString(final Object value, Locale locale)
+	public String convertToString(final Time value, Locale locale)
 	{
 		if (value == null)
 		{
@@ -70,7 +70,7 @@ public class SqlTimeConverter extends Ab
 		{
 			locale = Locale.getDefault();
 		}
-		Time time = (Time)value;
+		Time time = value;
 		DateFormat format = DateFormat.getTimeInstance(DateFormat.SHORT, locale);
 		return format.format(time);
 	}

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimestampConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimestampConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimestampConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/SqlTimestampConverter.java Sun Nov 14 18:08:17 2010
@@ -27,7 +27,7 @@ import java.util.Locale;
  * 
  * @author eelcohillenius
  */
-public class SqlTimestampConverter extends AbstractConverter
+public class SqlTimestampConverter extends AbstractConverter<Timestamp>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -61,6 +61,7 @@ public class SqlTimestampConverter exten
 	 * @param dateFormat
 	 *            See java.text.DateFormat for details. Defaults to DateFormat.SHORT * @param
 	 *            timeFormat See java.text.DateFormat for details. Defaults to DateFormat.SHORT
+	 * @param timeFormat
 	 */
 	public SqlTimestampConverter(int dateFormat, int timeFormat)
 	{
@@ -105,7 +106,7 @@ public class SqlTimestampConverter exten
 	 *      java.util.Locale)
 	 */
 	@Override
-	public String convertToString(final Object value, Locale locale)
+	public String convertToString(final Timestamp value, Locale locale)
 	{
 		if (value == null)
 		{
@@ -117,7 +118,7 @@ public class SqlTimestampConverter exten
 			locale = Locale.getDefault();
 		}
 
-		Timestamp timestamp = (Timestamp)value;
+		Timestamp timestamp = value;
 		DateFormat format = DateFormat.getDateTimeInstance(dateFormat, timeFormat, locale);
 		return format.format(timestamp);
 	}

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ZeroPaddingIntegerConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ZeroPaddingIntegerConverter.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ZeroPaddingIntegerConverter.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/convert/converter/ZeroPaddingIntegerConverter.java Sun Nov 14 18:08:17 2010
@@ -25,7 +25,7 @@ import java.util.Locale;
  * @author Jonathan Locke
  * @author Al Maw
  */
-public class ZeroPaddingIntegerConverter extends AbstractIntegerConverter
+public class ZeroPaddingIntegerConverter extends AbstractIntegerConverter<Integer>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -47,7 +47,7 @@ public class ZeroPaddingIntegerConverter
 	 *      java.util.Locale)
 	 */
 	@Override
-	public String convertToString(Object value, Locale locale)
+	public String convertToString(Integer value, Locale locale)
 	{
 		String result = super.convertToString(value, locale);
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Sun Nov 14 18:08:17 2010
@@ -1363,7 +1363,7 @@ public abstract class Component
 	 * 
 	 * @return The converter that should be used by this component
 	 */
-	public IConverter getConverter(Class<?> type)
+	public <C> IConverter<C> getConverter(Class<C> type)
 	{
 		return getApplication().getConverterLocator().getConverter(type);
 	}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ConverterLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ConverterLocator.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ConverterLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ConverterLocator.java Sun Nov 14 18:08:17 2010
@@ -56,33 +56,33 @@ public class ConverterLocator implements
 	/**
 	 * CoverterLocator that is to be used when no registered converter is found.
 	 */
-	private class DefaultConverter implements IConverter
+	private class DefaultConverter<C> implements IConverter<C>
 	{
 		private static final long serialVersionUID = 1L;
 
-		private final WeakReference<Class<?>> type;
+		private final WeakReference<Class<C>> type;
 
 		/**
 		 * Construct.
 		 * 
 		 * @param type
 		 */
-		private DefaultConverter(Class<?> type)
+		private DefaultConverter(Class<C> type)
 		{
-			this.type = new WeakReference<Class<?>>(type);
+			this.type = new WeakReference<Class<C>>(type);
 		}
 
 		/**
 		 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,
 		 *      java.util.Locale)
 		 */
-		public Object convertToObject(String value, Locale locale)
+		public C convertToObject(String value, Locale locale)
 		{
 			if (value == null)
 			{
 				return null;
 			}
-			Class<?> theType = type.get();
+			Class<C> theType = type.get();
 			if ("".equals(value))
 			{
 				if (String.class.equals(theType))
@@ -115,7 +115,7 @@ public class ConverterLocator implements
 		 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object,
 		 *      java.util.Locale)
 		 */
-		public String convertToString(Object value, Locale locale)
+		public String convertToString(C value, Locale locale)
 		{
 			if (value == null || "".equals(value))
 			{
@@ -140,7 +140,7 @@ public class ConverterLocator implements
 	private static final long serialVersionUID = 1L;
 
 	/** Maps Classes to ITypeConverters. */
-	private final Map<String, IConverter> classToConverter = new HashMap<String, IConverter>();
+	private final Map<String, IConverter<?>> classToConverter = new HashMap<String, IConverter<?>>();
 
 	/**
 	 * Constructor
@@ -178,9 +178,9 @@ public class ConverterLocator implements
 	 * @return The type converter that is registered for class c or null if no type converter was
 	 *         registered for class c
 	 */
-	public final IConverter get(Class<?> c)
+	public final <C> IConverter<C> get(Class<C> c)
 	{
-		return classToConverter.get(c.getName());
+		return (IConverter<C>)classToConverter.get(c.getName());
 	}
 
 	/**
@@ -193,20 +193,20 @@ public class ConverterLocator implements
 	 * 
 	 * @see org.apache.wicket.util.convert.IConverter#convertToObject(String, java.util.Locale)
 	 */
-	public final IConverter getConverter(Class<?> type)
+	public final <C> IConverter<C> getConverter(Class<C> type)
 	{
 		// Null is always converted to null
 		if (type == null)
 		{
-			return new DefaultConverter(String.class);
+			return (IConverter<C>)new DefaultConverter<String>(String.class);
 		}
 
 
 		// Get type converter for class
-		final IConverter converter = get(type);
+		final IConverter<C> converter = get(type);
 		if (converter == null)
 		{
-			return new DefaultConverter(type);
+			return new DefaultConverter<C>(type);
 		}
 		return converter;
 	}
@@ -219,7 +219,7 @@ public class ConverterLocator implements
 	 * @return The converter that was registered for class c before removal or null if none was
 	 *         registered
 	 */
-	public final IConverter remove(Class<?> c)
+	public final IConverter<?> remove(Class<?> c)
 	{
 		return classToConverter.remove(c.getName());
 	}
@@ -234,8 +234,7 @@ public class ConverterLocator implements
 	 * @return The previous registered converter for class c or null if none was registered yet for
 	 *         class c
 	 */
-	@SuppressWarnings("unchecked")
-	public final IConverter set(final Class c, final IConverter converter)
+	public final IConverter<?> set(final Class<?> c, final IConverter<?> converter)
 	{
 		if (converter == null)
 		{

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/IConverterLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/IConverterLocator.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/IConverterLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/IConverterLocator.java Sun Nov 14 18:08:17 2010
@@ -40,5 +40,5 @@ public interface IConverterLocator exten
 	 * @param type
 	 * @return The converter for the given type.
 	 */
-	public IConverter getConverter(Class<?> type);
+	public <C> IConverter<C> getConverter(Class<C> type);
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java?rev=1035037&r1=1035036&r2=1035037&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java Sun Nov 14 18:08:17 2010
@@ -134,8 +134,8 @@ public class CheckBox extends FormCompon
 		checkComponentTagAttribute(tag, "type", "checkbox");
 
 		final String value = getValue();
-		final IConverter converter = getConverter(Boolean.class);
-		final Boolean checked = (Boolean)converter.convertToObject(value, getLocale());
+		final IConverter<Boolean> converter = getConverter(Boolean.class);
+		final Boolean checked = converter.convertToObject(value, getLocale());
 
 		if (Boolean.TRUE.equals(checked))
 		{
@@ -183,11 +183,11 @@ public class CheckBox extends FormCompon
 	 * @see org.apache.wicket.Component#getConverter(java.lang.Class)
 	 */
 	@Override
-	public final IConverter getConverter(Class<?> type)
+	public final <C> IConverter<C> getConverter(Class<C> type)
 	{
 		if (Boolean.class.equals(type))
 		{
-			return CheckBoxConverter.INSTANCE;
+			return (IConverter<C>)CheckBoxConverter.INSTANCE;
 		}
 		else
 		{
@@ -200,11 +200,11 @@ public class CheckBox extends FormCompon
 	 * 
 	 * @author igor.vaynberg
 	 */
-	private static class CheckBoxConverter implements IConverter
+	private static class CheckBoxConverter implements IConverter<Boolean>
 	{
 		private static final long serialVersionUID = 1L;
 
-		private static final IConverter INSTANCE = new CheckBoxConverter();
+		private static final IConverter<Boolean> INSTANCE = new CheckBoxConverter();
 
 		/**
 		 * Constructor
@@ -218,7 +218,7 @@ public class CheckBox extends FormCompon
 		 * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,
 		 *      java.util.Locale)
 		 */
-		public Object convertToObject(String value, Locale locale)
+		public Boolean convertToObject(String value, Locale locale)
 		{
 			if ("on".equals(value) || "true".equals(value))
 			{
@@ -234,9 +234,9 @@ public class CheckBox extends FormCompon
 		 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object,
 		 *      java.util.Locale)
 		 */
-		public String convertToString(Object value, Locale locale)
+		public String convertToString(Boolean value, Locale locale)
 		{
-			return ((Boolean)value).toString();
+			return value.toString();
 		}
 	}