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