private Map<String, ApiListing> processControllers(Set<Class<?>> controllerClasses) {
for (Class<?> controllerClass : controllerClasses) {
if (ApiDocumentationController.class.isAssignableFrom(controllerClass)) {
continue;
}
Set<Method> requestMappingMethods = AnnotationUtils.getAnnotatedMethods(controllerClass, RequestMapping.class);
ApiListing apiListing = processControllerApi(controllerClass);
String description = "";
Api controllerApi = controllerClass.getAnnotation(Api.class);
if (controllerApi != null) {
description = controllerApi.description();
}
if (apiListing.apis().size() == 0) {
apiListing = processMethods(requestMappingMethods, controllerClass, apiListing, description);
}
ApiListing existingApiListing = apiListingMap.get(apiListing.resourcePath());
if (existingApiListing != null) {
apiListing = ApiListingUtil.mergeApiListing(existingApiListing, apiListing);
}
if (apiListing.apis() != null && !apiListing.apis().isEmpty()) {
apiListingMap.put(apiListing.resourcePath(), apiListing);
}
}
return apiListingMap;
}