package com.pr0gramm.statistics.helper;
import java.lang.reflect.Field;
/**
* Created by koray on 30/01/2017.
*/
public class ReflectionHelper {
public static <T> Object getObject(String name, Object topLevelObj, Class<T> type) throws IllegalAccessException, NoSuchFieldException {
if (name.contains(".")) {
String[] splittedFields = name.split("\\.");
Object o = topLevelObj;
Field f = null;
for (String s : splittedFields) {
if (f == null) {
f = type.getDeclaredField(s);
f.setAccessible(true);
o = f.get(o);
} else {
f = f.getType().getDeclaredField(s);
f.setAccessible(true);
o = f.get(o);
}
}
return o;
} else {
Field f = type.getDeclaredField(name);
f.setAccessible(true);
return f.get(topLevelObj);
}
}
}