public ServiceMetaBuilder addMethod(final String rootPath, final MethodAccess methodAccess) {
for (String servicePath : this.getRequestPaths()) {
final List<String> requestPaths
= getRequestPathsByAnnotated(methodAccess, methodAccess.name().toLowerCase());
final String description = getDescriptionFromRequestMapping(methodAccess);
final String returnDescription = getReturnDescriptionFromRequestMapping(methodAccess);
final String summary = getSummaryFromRequestMapping(methodAccess);
final int code = getCodeFromRequestMapping(methodAccess);
final String contentType = getContentTypeFromRequestMapping(methodAccess);
final MultiMap<String, String> responseHeaders = getResponseHeaders(methodAccess);
final List<RequestMethod> requestMethods = getRequestMethodsByAnnotated(methodAccess);
final ServiceMethodMetaBuilder serviceMethodMetaBuilder = ServiceMethodMetaBuilder.serviceMethodMetaBuilder();
serviceMethodMetaBuilder.setMethodAccess(methodAccess);
serviceMethodMetaBuilder.setDescription(description);
serviceMethodMetaBuilder.setSummary(summary);
serviceMethodMetaBuilder.setReturnDescription(returnDescription);
serviceMethodMetaBuilder.setResponseCode(code);
serviceMethodMetaBuilder.setContentType(contentType);
for (String path : requestPaths) {
CallType callType = path.contains("{") ? CallType.ADDRESS_WITH_PATH_PARAMS : CallType.ADDRESS;
final RequestMetaBuilder requestMetaBuilder = new RequestMetaBuilder();
requestMetaBuilder.setResponseHeaders(responseHeaders);
requestMetaBuilder.addParameters(rootPath, servicePath, path, methodAccess);
requestMetaBuilder.setCallType(callType).setRequestURI(path).setRequestMethods(requestMethods);
serviceMethodMetaBuilder.addRequestEndpoint(requestMetaBuilder.build());
}
addMethod(serviceMethodMetaBuilder.build());
}
return this;
}