private void addOccupant(T occupant) {
    Class cl = occupant.getClass();
    do {
        if ((cl.getModifiers() & Modifier.ABSTRACT) == 0)
            occupantClasses.add(cl);
        cl = cl.getSuperclass();
    } while (cl != Object.class);
}