synchronized (this.methods) {
if (this.initializedMethods == Boolean.TRUE) return;
this.initializedMethods = Boolean.FALSE;
try {
IReflectionManager manager = ReflectionContext.getReflectionManager();
Set<Class<?>> supers = clazz.isInterface() ? ReflectionUtil.extractInterfaces(clazz) : ReflectionUtil.extractSuperclasses(clazz);
for (Class<?> sc : supers) {
for (Method method : manager.getDeclaredMethods(sc)) {
String name = method.getName();
ClassMethod cmethod = null;
if (!methods.containsKey(name)) methods.put(name, new ArrayList<ClassMethod>());
else {