[Lutinutil-commits] r795 - branches/lutinutil-sans-vcs/lutinutil/src/java/org/codelutin/util/config
Author: tchemit Date: 2008-04-27 12:50:56 +0000 (Sun, 27 Apr 2008) New Revision: 795 Modified: branches/lutinutil-sans-vcs/lutinutil/src/java/org/codelutin/util/config/SimpleConfig.java Log: copy all properties, not only non null, introduce universe of config properties Modified: branches/lutinutil-sans-vcs/lutinutil/src/java/org/codelutin/util/config/SimpleConfig.java =================================================================== --- branches/lutinutil-sans-vcs/lutinutil/src/java/org/codelutin/util/config/SimpleConfig.java 2008-04-27 12:40:27 UTC (rev 794) +++ branches/lutinutil-sans-vcs/lutinutil/src/java/org/codelutin/util/config/SimpleConfig.java 2008-04-27 12:50:56 UTC (rev 795) @@ -20,6 +20,8 @@ import java.lang.reflect.InvocationTargetException; import java.util.EnumMap; +import java.util.EnumSet; +import java.util.Map; /** * simple config implementation based on a Enum to obtain properties @@ -28,12 +30,15 @@ */ public class SimpleConfig<E extends Enum<E>> implements Config<E> { - static protected final Log log = LogFactory.getLog(SimpleConfig.class); + static protected final Log log = LogFactory.getLog(Config.class); - protected java.util.EnumMap<E, Object> properties; + protected EnumMap<E, Object> properties; + protected final EnumSet<E> universe; + public SimpleConfig(Class<E> klass) { - this.properties = new java.util.EnumMap<E, Object>(klass); + this.properties = new EnumMap<E, Object>(klass); + this.universe = java.util.EnumSet.allOf(klass); } public SimpleConfig(Class<E> klass, EnumMap<E, Object> properties) { @@ -41,12 +46,12 @@ setProperties(properties); } - public java.util.EnumMap<E, Object> getProperties() { + public EnumMap<E, Object> getProperties() { return properties.clone(); } - public void setProperties(java.util.EnumMap<E, Object> properties) { - for (java.util.Map.Entry<E, Object> entry : properties.entrySet()) { + public void setProperties(EnumMap<E, Object> properties) { + for (Map.Entry<E, Object> entry : properties.entrySet()) { setProperty(entry.getKey(), entry.getValue()); } } @@ -61,36 +66,35 @@ } public void copyFrom(Object src) { - for (java.util.Map.Entry<E, Object> entry : properties.entrySet()) { - E key = entry.getKey(); + for (E key : universe) { + Object value = null; try { - Object value = BeanUtils.getProperty(src, key.name()); + value = BeanUtils.getProperty(src, key.name()); setProperty(key, value); } catch (IllegalAccessException e) { //TODO - log.warn("could not retreave property " + key + " on object " + src, e); + log.warn("could not retreave property <" + key + ":" + value + "> on object " + src, e); } catch (InvocationTargetException e) { //TODO - log.warn("could not retreave property " + key + " on object " + src, e); + log.warn("could not retreave property <" + key + ":" + value + "> on object " + src, e); } catch (NoSuchMethodException e) { //TODO - log.warn("could not retreave property " + key + " on object " + src, e); + log.warn("could not retreave property <" + key + ":" + value + "> on object " + src, e); } - } } public void copyTo(Object dst) { - for (java.util.Map.Entry<E, Object> entry : properties.entrySet()) { - Object value = entry.getValue(); + for (E key : universe) { + Object value = properties.get(key); try { - BeanUtils.setProperty(dst, entry.getKey().name(), value); + BeanUtils.setProperty(dst, key.name(), value); } catch (IllegalAccessException e) { //TODO - log.warn("could not set property " + entry.getKey() + " to object " + dst, e); + log.warn("could not set property <" + key + ":" + value + "> to object " + dst, e); } catch (InvocationTargetException e) { //TODO - log.warn("could not set property " + entry.getKey() + " to object " + dst, e); + log.warn("could not set property <" + key + ":" + value + "> to object " + dst, e); } } } @@ -101,7 +105,7 @@ if (properties.isEmpty()) { sb.append(" empty"); } else { - for (java.util.Map.Entry<E, Object> entry : properties.entrySet()) { + for (Map.Entry<E, Object> entry : properties.entrySet()) { sb.append(", ").append(entry.getKey()).append(':').append(entry.getValue()); } }
participants (1)
-
tchemit@users.labs.libre-entreprise.org