Commit e55c4edabac1391e5a0e33b416a19b4c1c034a56
1 parent
9e9ec64d
Exists in
master
Considerando métodos da classe pai
Showing
1 changed file
with
15 additions
and
1 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java
... | ... | @@ -43,8 +43,11 @@ import java.lang.reflect.Method; |
43 | 43 | import java.lang.reflect.ParameterizedType; |
44 | 44 | import java.lang.reflect.Type; |
45 | 45 | import java.net.URL; |
46 | +import java.util.ArrayList; | |
47 | +import java.util.Arrays; | |
46 | 48 | import java.util.HashSet; |
47 | 49 | import java.util.Iterator; |
50 | +import java.util.List; | |
48 | 51 | import java.util.Properties; |
49 | 52 | import java.util.Set; |
50 | 53 | |
... | ... | @@ -102,11 +105,22 @@ public class ConfigurationLoader implements Serializable { |
102 | 105 | |
103 | 106 | getLogger().debug(getBundle().getString("loading-configuration-class", config.getName())); |
104 | 107 | |
105 | - for (Field field : Reflections.getNonStaticDeclaredFields(config)) { | |
108 | + for (Field field : getNonStaticFields(config)) { | |
106 | 109 | loadField(field, object, config); |
107 | 110 | } |
108 | 111 | } |
109 | 112 | |
113 | + private List<Field> getNonStaticFields(Class<?> type) { | |
114 | + List<Field> fields = new ArrayList<Field>(); | |
115 | + | |
116 | + if (type != null) { | |
117 | + fields.addAll(Arrays.asList(Reflections.getNonStaticDeclaredFields(type))); | |
118 | + fields.addAll(getNonStaticFields(type.getSuperclass())); | |
119 | + } | |
120 | + | |
121 | + return fields; | |
122 | + } | |
123 | + | |
110 | 124 | private void loadField(Field field, Object object, Class<?> clazz) { |
111 | 125 | if (!field.isAnnotationPresent(Ignore.class) && clazz.isAnnotationPresent(Configuration.class)) { |
112 | 126 | String resource = clazz.getAnnotation(Configuration.class).resource(); | ... | ... |