From 392ab62c3d72b6f144e6d12b4491782a2f9c9331 Mon Sep 17 00:00:00 2001 From: Emerson Oliveira Date: Tue, 2 Apr 2013 17:29:05 -0300 Subject: [PATCH] Ajustes para carregamento de arrays a partir de arquivo do tipo properties --- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java index 0b605cd..9f11204 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java @@ -52,6 +52,7 @@ import org.apache.commons.configuration.FileConfiguration; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.configuration.SystemConfiguration; import org.apache.commons.configuration.XMLConfiguration; +import org.apache.commons.lang.ClassUtils; import br.gov.frameworkdemoiselle.annotation.Ignore; import br.gov.frameworkdemoiselle.annotation.Name; @@ -178,37 +179,36 @@ public class ConfigurationLoader implements Serializable { } String key = getKey(field); + Object value; if (field.getType().isArray()) { - loadArrayField(field, key); - } else if (field.getType() == String.class) { - loadStringField(field, key); + value = getArrayValue(field, key); } else { - loadBasicField(field, key); + value = getPrimitiveOrWrappedValue(field, key); } - } - private void loadArrayField(Field field, String key) { - Object value = this.configuration.getArray(field.getType().getComponentType(), key, - Reflections.getFieldValue(field, this.object)); Reflections.setFieldValue(field, this.object, value); } - private void loadStringField(Field field, String key) { - Object value = this.configuration.getString(key, (String) Reflections.getFieldValue(field, this.object)); - Reflections.setFieldValue(field, this.object, value); + private Object getArrayValue(Field field, String key) { + return this.configuration.getArray(field.getType().getComponentType(), key, + Reflections.getFieldValue(field, this.object)); } - private void loadBasicField(Field field, String key) { + @SuppressWarnings("unchecked") + private Object getPrimitiveOrWrappedValue(Field field, String key) { Object value; + Object defaultValue = Reflections.getFieldValue(field, this.object); try { - value = this.configuration.get(field.getType(), key, Reflections.getFieldValue(field, this.object)); + Class type = ClassUtils.primitiveToWrapper(field.getType()); + value = this.configuration.get(type, key, defaultValue); + } catch (ConversionException cause) { - value = null; + value = defaultValue; } - Reflections.setFieldValue(field, this.object, value); + return value; } private String getKey(Field field) { -- libgit2 0.21.2