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,14 +94,15 @@ 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));
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
logger.log(Level.SEVERE, null, e); logger.log(Level.SEVERE, null, e);
}
} }
} }
} }