Author: jcompagner
Date: Mon Apr 14 13:44:47 2008
New Revision: 647993

URL: http://svn.apache.org/viewvc?rev=647993&view=rev
Log:
WICKET-1532

Modified:
    
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/IConverterLocator.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/IConverter.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java

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=647993&r1=647992&r2=647993&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
 Mon Apr 14 13:44:47 2008
@@ -213,7 +213,7 @@
         * @see org.apache.wicket.Component#getConverter(java.lang.Class)
         */
        @Override
-       public IConverter getConverter(Class< ? > type)
+       public <T> IConverter<T> getConverter(Class<T> type)
        {
                return null;
        }
@@ -286,9 +286,9 @@
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       public IConverter getConverter(Class< ? > type)
+                       public <T> IConverter<T> getConverter(Class<T> type)
                        {
-                               IConverter c = 
AjaxEditableLabel.this.getConverter(type);
+                               IConverter<T> c = 
AjaxEditableLabel.this.getConverter(type);
                                return c != null ? c : super.getConverter(type);
                        }
 
@@ -330,9 +330,9 @@
                        private static final long serialVersionUID = 1L;
 
                        @Override
-                       public IConverter getConverter(Class< ? > type)
+                       public <T> IConverter<T> getConverter(Class<T> type)
                        {
-                               IConverter c = 
AjaxEditableLabel.this.getConverter(type);
+                               IConverter<T> c = 
AjaxEditableLabel.this.getConverter(type);
                                return c != null ? c : super.getConverter(type);
                        }
 

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=647993&r1=647992&r2=647993&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 Mon Apr 
14 13:44:47 2008
@@ -1319,7 +1319,7 @@
         * 
         * @return The converter that should be used by this component
         */
-       public IConverter getConverter(Class< ? > type)
+       public <T> IConverter<T> getConverter(Class<T> type)
        {
                return 
getApplication().getConverterLocator().getConverter(type);
        }
@@ -1635,12 +1635,12 @@
         *            Model object to convert to string
         * @return The string
         */
-       public final String getModelObjectAsString(final Object modelObject)
+       public final String getModelObjectAsString(final T modelObject)
        {
                if (modelObject != null)
                {
                        // Get converter
-                       final IConverter converter = 
getConverter(modelObject.getClass());
+                       final IConverter<T> converter = 
getConverter((Class<T>)modelObject.getClass());
 
                        // Model string from property
                        final String modelString = 
converter.convertToString(modelObject, getLocale());

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=647993&r1=647992&r2=647993&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 
Mon Apr 14 13:44:47 2008
@@ -39,5 +39,5 @@
         * @param type
         * @return The converter for the given type.
         */
-       public IConverter getConverter(Class< ? > type);
+       public<T> IConverter<T> getConverter(Class< T > type);
 }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java?rev=647993&r1=647992&r2=647993&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
 Mon Apr 14 13:44:47 2008
@@ -24,6 +24,7 @@
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.util.convert.IConverter;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.version.undo.Change;
@@ -385,7 +386,8 @@
                String displayValue = "";
                if (objectClass != null && objectClass != String.class)
                {
-                       displayValue = 
getConverter(objectClass).convertToString(objectValue, getLocale());
+                       displayValue = 
((IConverter<Object>)this.getConverter(objectClass)).convertToString(
+                               objectValue, getLocale());
                }
                else if (objectValue != null)
                {

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java?rev=647993&r1=647992&r2=647993&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
 Mon Apr 14 13:44:47 2008
@@ -54,44 +54,45 @@
        /**
         * CoverterLocator that is to be used when no registered converter is 
found.
         */
-       private class DefaultConverter implements IConverter
+       private class DefaultConverter<T> implements IConverter<T>
        {
                private static final long serialVersionUID = 1L;
 
-               private final WeakReference/* <Class<?>> */type;
+               private final WeakReference<Class<T>> type;
 
                /**
                 * Construct.
                 * 
                 * @param type
                 */
-               public DefaultConverter(Class/* ? */type)
+               private DefaultConverter(Class<T> type)
                {
-                       this.type = new WeakReference(type);
+                       this.type = new WeakReference<Class<T>>(type);
                }
 
                /**
                 * @see 
org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String,
                 *      java.util.Locale)
                 */
-               public Object convertToObject(String value, Locale locale)
+               public T convertToObject(String value, Locale locale)
                {
                        if (value == null)
                        {
                                return null;
                        }
+                       Class<T> theType = type.get();
                        if ("".equals(value))
                        {
-                               if (((Class)type.get()) == String.class)
+                               if (theType.equals(String.class))
                                {
-                                       return "";
+                                       return theType.cast("");
                                }
                                return null;
                        }
 
                        try
                        {
-                               return Objects.convertValue(value, 
(Class)type.get());
+                               return Objects.convertValue(value, theType);
                        }
                        catch (Exception e)
                        {
@@ -103,21 +104,21 @@
                 * @see 
org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object,
                 *      java.util.Locale)
                 */
-               public String convertToString(Object value, Locale locale)
+               public String convertToString(T value, Locale locale)
                {
                        if (value == null || "".equals(value))
                        {
                                return "";
                        }
 
-                       return (String)Objects.convertValue(value, 
String.class);
+                       return Objects.convertValue(value, String.class);
                }
        }
 
        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
@@ -155,9 +156,9 @@
         * @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 <T> IConverter<T> get(Class<T> c)
        {
-               return (IConverter)classToConverter.get(c.getName());
+               return (IConverter<T>)classToConverter.get(c.getName());
        }
 
        /**
@@ -170,20 +171,20 @@
         * 
         * @see 
org.apache.wicket.util.convert.IConverter#convertToObject(String, 
java.util.Locale)
         */
-       public final IConverter getConverter(Class type)
+       public final <T> IConverter<T> getConverter(Class<T> type)
        {
                // Null is always converted to null
                if (type == null)
                {
-                       return new DefaultConverter(String.class);
+                       return (IConverter<T>)new 
DefaultConverter<String>(String.class);
                }
 
 
                // Get type converter for class
-               final IConverter converter = get(type);
+               final IConverter<T> converter = get(type);
                if (converter == null)
                {
-                       return new DefaultConverter(type);
+                       return new DefaultConverter<T>(type);
                }
                return converter;
        }
@@ -196,9 +197,9 @@
         * @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 <T> IConverter<T> remove(Class<T> c)
        {
-               return (IConverter)classToConverter.remove(c.getName());
+               return (IConverter<T>)classToConverter.remove(c.getName());
        }
 
        /**
@@ -211,7 +212,7 @@
         * @return The previous registered converter for class c or null if 
none was registered yet for
         *         class c
         */
-       public final IConverter set(final Class/* ? */c, final IConverter 
converter)
+       public final <T> IConverter<T> set(final Class<T> c, final 
IConverter<T> converter)
        {
                if (converter == null)
                {
@@ -221,6 +222,6 @@
                {
                        throw new IllegalArgumentException("Class cannot be 
null");
                }
-               return (IConverter)classToConverter.put(c.getName(), converter);
+               return (IConverter<T>)classToConverter.put(c.getName(), 
converter);
        }
 }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/IConverter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/IConverter.java?rev=647993&r1=647992&r2=647993&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/IConverter.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/convert/IConverter.java
 Mon Apr 14 13:44:47 2008
@@ -43,7 +43,7 @@
  * @author Eelco Hillenius
  * @author Jonathan Locke
  */
-public interface IConverter extends IClusterable
+public interface IConverter<T> extends IClusterable
 {
        /**
         * Converts the given [EMAIL PROTECTED] String} value
@@ -54,7 +54,7 @@
         *            The locale used to convert the value
         * @return The converted value
         */
-       Object convertToObject(String value, Locale locale);
+       T convertToObject(String value, Locale locale);
 
        /**
         * Converts the given value to a string.
@@ -66,5 +66,5 @@
         * 
         * @return The converted string value
         */
-       String convertToString(Object value, Locale locale);
+       String convertToString(T value, Locale locale);
 }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java?rev=647993&r1=647992&r2=647993&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java 
Mon Apr 14 13:44:47 2008
@@ -621,7 +621,7 @@
         * @return converted value of the type given, or value if the value 
cannot be converted to the
         *         given type.
         */
-       public static Object convertValue(Object value, Class toType)
+       public static<T> T convertValue(Object value, Class<T> toType)
        {
                Object result = null;
 
@@ -630,7 +630,7 @@
                        /* If array -> array then convert components of array 
individually */
                        if (value.getClass().isArray() && toType.isArray())
                        {
-                               Class componentType = toType.getComponentType();
+                               Class<?> componentType = 
toType.getComponentType();
 
                                result = Array.newInstance(componentType, 
Array.getLength(value));
                                for (int i = 0, icount = 
Array.getLength(value); i < icount; i++)
@@ -693,7 +693,7 @@
                                result = primitiveDefaults.get(toType);
                        }
                }
-               return result;
+    return toType.cast( result );
        }
 
        /**


Reply via email to