public static void forEachSuperClass(Class<?> clazz, ClassAction action) {
        try {
            action.act(clazz);
            Class<?> superclass = clazz.getSuperclass();
            if ( superclass != null ) {
                forEachSuperClass(superclass, action);
            }
        } catch ( Exception e ) {
            throw new RuntimeException(e);
        }

    }
Iterates over all super classes of the given class (including the class itself)
and calls action.act() for these classes.
jgiven-core/src/main/java/com/tngtech/jgiven/impl/util/ReflectionUtil.java