protected void fillMethods(List<GenericMethod> methods, Generic generic) { Method[] declaredMethods = generic.clazz.getDeclaredMethods(); for (Method method : declaredMethods) { Generic returnType = new Generic(method.getGenericReturnType(), generic.types); Type[] genericParameterTypes = method.getGenericParameterTypes(); List<Generic> args = new ArrayList<Generic>(genericParameterTypes.length); for (Type genericParameterType : genericParameterTypes) { args.add(new Generic(genericParameterType, generic.types)); } methods.add(new GenericMethod(method, returnType, Collections.unmodifiableList(args))); } for (Generic g : generic.interfaces) { fillMethods(methods, g); } if (generic.parent != null) fillMethods(methods, generic.parent); }
protected void fillMethods(List<GenericMethod> methods, Generic generic) { Method[] declaredMethods = generic.clazz.getDeclaredMethods(); for (Method method : declaredMethods) { Generic returnType = new Generic(method.getGenericReturnType(), generic.types); Type[] genericParameterTypes = method.getGenericParameterTypes(); List<Generic> args = new ArrayList<Generic>(genericParameterTypes.length); for (Type genericParameterType : genericParameterTypes) { args.add(new Generic(genericParameterType, generic.types)); } methods.add(new GenericMethod(method, returnType, Collections.unmodifiableList(args))); } for (Generic g : generic.interfaces) { fillMethods(methods, g); } if (generic.parent != null) fillMethods(methods, generic.parent); }