}
Class cls = wrap.getClass();
ArrayList<Class> interfaces =
new ArrayList<Class>();
do {
ControlInterfaces cis = ((Class<? extends Wrap>) cls).getAnnotation(ControlInterfaces.class);
for (Class c : cis.value()) {
if (!interfaces.contains(c)) {
interfaces.add(c);
}
}
} while (Wrap.class.isAssignableFrom((cls = cls.getSuperclass())));