public static Class<?> propertyType(Class<?> baseClass, String property)
            throws NoSuchMethodException {
        Class<?> innerClass = baseClass;
        Method method;
        if (property.startsWith("./")) {
            property = property.substring(2);
        }
        String[] path = property.split("[./]");
        for (String aPath : path) {
            try {
                method = innerClass.getMethod(getter(aPath), (Class<?>[]) null);
            } catch (NoSuchMethodException ex) {
                method = innerClass.getMethod(aPath, (Class<?>[]) null);
            }
            innerClass = method.getReturnType();
        }
        return innerClass;
    }