package org.needle4j.reflection; abstract class DerivedClassIterator { private final Class<?> clazz; DerivedClassIterator(Class<?> clazz) { super(); this.clazz = clazz; } boolean iterate() { Class<?> superClazz = clazz; boolean success = false; while (superClazz != null) { success |= handleClass(superClazz); superClazz = superClazz.getSuperclass(); } return success; } protected abstract boolean handleClass(Class<?> clazz); }