private static List<ApiMethodDoc> getApiMethodDocs(Class<?> controller) {
List<ApiMethodDoc> apiMethodDocs = new ArrayList<ApiMethodDoc>();
Method[] methods = controller.getMethods();
for (Method method : methods) {
if(method.isAnnotationPresent(ApiMethod.class)) {
ApiMethodDoc apiMethodDoc = ApiMethodDoc.buildFromAnnotation(method.getAnnotation(ApiMethod.class));
if(method.isAnnotationPresent(ApiHeaders.class)) {
apiMethodDoc.setHeaders(ApiHeaderDoc.buildFromAnnotation(method.getAnnotation(ApiHeaders.class)));
}
apiMethodDoc.setPathparameters(ApiParamDoc.getApiParamDocs(method, ApiParamType.PATH));
apiMethodDoc.setQueryparameters(ApiParamDoc.getApiParamDocs(method, ApiParamType.QUERY));
apiMethodDoc.setBodyobject(ApiBodyObjectDoc.buildFromAnnotation(method));
if(method.isAnnotationPresent(ApiResponseObject.class)) {
apiMethodDoc.setResponse(ApiResponseObjectDoc.buildFromAnnotation(method.getAnnotation(ApiResponseObject.class), method));
}
if(method.isAnnotationPresent(ApiErrors.class)) {
apiMethodDoc.setApierrors(ApiErrorDoc.buildFromAnnotation(method.getAnnotation(ApiErrors.class)));
}
if(method.isAnnotationPresent(ApiVersion.class)) {
apiMethodDoc.setSupportedversions(ApiVersionDoc.buildFromAnnotation(method.getAnnotation(ApiVersion.class)));
}
apiMethodDoc.setAuth(getApiAuthDocForMethod(method, method.getDeclaringClass()));
apiMethodDocs.add(apiMethodDoc);
}
}