public TypeVisitorImpl( DeclaredType type, List<? extends TypeMirror> typeArguments, Collection<DeclaredType> typeRecursionGuard) { TypeElement elem = (TypeElement) type.asElement(); _typeRecursionGuard = typeRecursionGuard; _type = type; List<? extends TypeParameterElement> generics = elem.getTypeParameters(); for (int i = 0; i < generics.size(); i++) { DeclaredType value = (typeArguments.isEmpty() || !(typeArguments.get(i) instanceof DeclaredType)) ? null : (DeclaredType) typeArguments.get(i); _typeArguments.put(generics.get(i).getSimpleName(), value); } }
private void buildRequestBodies( ExecutableElement executableElement, RestDocumentation.Resource.Method doc) { List<VariableElement> requestBodies = new ArrayList<VariableElement>(); for (VariableElement var : executableElement.getParameters()) { if (var.getAnnotation(org.springframework.web.bind.annotation.RequestBody.class) != null) { requestBodies.add(var); } } if (requestBodies.size() > 1) { throw new IllegalStateException( String.format( "Method %s in class %s has multiple @RequestBody params", executableElement.getSimpleName(), executableElement.getEnclosingElement())); } if (requestBodies.size() == 1) { buildRequestBody(requestBodies.get(0), doc); } }