Index: lutinutil/src/java/org/codelutin/util/EnumConverter.java diff -u lutinutil/src/java/org/codelutin/util/EnumConverter.java:1.3 lutinutil/src/java/org/codelutin/util/EnumConverter.java:1.4 --- lutinutil/src/java/org/codelutin/util/EnumConverter.java:1.3 Sun Dec 30 22:30:21 2007 +++ lutinutil/src/java/org/codelutin/util/EnumConverter.java Tue Jan 1 23:24:20 2008 @@ -20,7 +20,6 @@ package org.codelutin.util; import org.apache.commons.beanutils.ConversionException; -import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; import static org.apache.commons.logging.LogFactory.getLog; import static org.codelutin.i18n.I18n._; @@ -33,39 +32,15 @@ *
* Il est possible aussi de convertir une Enum à partir de sa valeur ordinal. * - * La classe offre des méthodes statiques publiques de factory d'EnumConverter - * converter pour un type d'enum donné {@link #registerEnumConverter(Class)}, - * et {@link #registerEnumConverter(Class, Object)} . + * Pour enregister un nouveau convertissemnt pour un type d'Enum utiliser les + * méthodes * {@link ConverterUtil#registerEnumConverter(Class)}, + * et {@link ConverterUtil#registerEnumConverter(Class,Object} . * * @author chemit * @see Enum * @see Enum#ordinal() */ public class EnumConverter implements Converter { - /** - * Enregistre un nouveau converter pour un type d'enum donné, avec une - * valeur par defaut. - * - * @param type le type d'enum à convertir - * @param defaultValue la valeur par defaut. - */ - public static void registerEnumConverter(Class> type, Object defaultValue) { - if (isEnabled(type, type) && ConvertUtils.lookup(type) == null) { - EnumConverter converter = new EnumConverter(type, defaultValue); - ConvertUtils.register(converter, type); - log.info(converter + "<" + type + ">"); - } - } - - /** - * Enregistre un nouveau converter pour un type d'enum donné, sans utiliser - * de valeur par defaut. - * - * @param type le type d'enum à convertir - */ - public static void registerEnumConverter(Class> type) { - registerEnumConverter(type, null); - } /** to use log facility, just put in your code: log.info(\"...\"); */ static org.apache.commons.logging.Log log = getLog(EnumConverter.class); @@ -84,7 +59,7 @@ if (useDefault) { return defaultValue; } - throw new ConversionException("No value specified"); + throw new ConversionException(_("lutin.error.convertor.noValue",this)); } if (isEnabled(aClass, enumType)) { Object result; @@ -110,13 +85,13 @@ throw new ConversionException(_("lutin.error.no.convertor", aClass.getName(), value)); } - protected EnumConverter(Class> enumType, Object defaultValue) { + public EnumConverter(Class> enumType, Object defaultValue) { this.enumType = enumType; this.defaultValue = defaultValue; useDefault = defaultValue != null; } - protected EnumConverter(Class> enumType) { + public EnumConverter(Class> enumType) { this(enumType, null); } @@ -145,7 +120,7 @@ } @SuppressWarnings({"unchecked"}) - private Object valueOf(Class aClass, Object value) { + protected Object valueOf(Class aClass, Object value) { Object result; result = Enum.valueOf(aClass, (String) value); return result; Index: lutinutil/src/java/org/codelutin/util/ConverterUtil.java diff -u lutinutil/src/java/org/codelutin/util/ConverterUtil.java:1.1 lutinutil/src/java/org/codelutin/util/ConverterUtil.java:1.2 --- lutinutil/src/java/org/codelutin/util/ConverterUtil.java:1.1 Sun Dec 30 22:17:25 2007 +++ lutinutil/src/java/org/codelutin/util/ConverterUtil.java Tue Jan 1 23:24:21 2008 @@ -21,6 +21,8 @@ import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; +import java.net.URL; + /** * Une classe contenant des méthodes utiles sur les converters * @@ -33,17 +35,61 @@ * Si le type est une énum et qu'aucun converter, n'a été trouvé, on * enregistre un nouveau convert d'enum. * + * Si le type est URL, et qu'aucun converter n'a été trouvé, + * on enregistre un URLConverter. + * * @param type le type à convertir * @return le converter trouvé, ou null si non trouvé * @see Converter * @see EnumConverter + * @see URLConverter */ public static