Configurator now checks the whole inherited class hierarchy

This commit is contained in:
Ziver Koc 2016-08-02 17:44:20 +02:00
parent 2fcc8e98c5
commit 123044aaf3

View file

@ -94,9 +94,9 @@ public class Configurator<T> {
protected static ConfigurationParam[] getConfiguration(Class c, Object obj){ protected static ConfigurationParam[] getConfiguration(Class c, Object obj){
ArrayList<ConfigurationParam> conf = new ArrayList<ConfigurationParam>(); ArrayList<ConfigurationParam> conf = new ArrayList<ConfigurationParam>();
Field[] all = c.getDeclaredFields(); for(Class<?> cc = c; cc != Object.class ;cc = cc.getSuperclass()) { // iterate through all super classes
for(Field f : all){ for (Field f : cc.getDeclaredFields()) {
if(f.isAnnotationPresent(Configurable.class) && if (f.isAnnotationPresent(Configurable.class) &&
!Modifier.isStatic(f.getModifiers()) && !Modifier.isTransient(f.getModifiers())) { !Modifier.isStatic(f.getModifiers()) && !Modifier.isTransient(f.getModifiers())) {
try { try {
conf.add(new ConfigurationParam(f, obj)); conf.add(new ConfigurationParam(f, obj));
@ -105,6 +105,7 @@ public class Configurator<T> {
} }
} }
} }
}
ConfigurationParam[] list = conf.toArray(new ConfigurationParam[conf.size()]); ConfigurationParam[] list = conf.toArray(new ConfigurationParam[conf.size()]);
Arrays.sort(list); Arrays.sort(list);