private void extractContentArgPosition() {
            Annotation[][] params = method.getParameterAnnotations();
            int pos = -1;
            int count = 0;
            for (int i = 0; i < params.length; i++) {
                for (Annotation a : params[i]) {
                    if (a.annotationType().equals(Content.class)) {
                        pos = i;
                        count++;
                    }
                }
            }
            if (count > 1) {
                throw new ProxyAnnotationException(format("Method %s annotates multiple parameters as @Content - at most one is allowed ", methodName()));
            }
            contentArgPosition = pos;
            if (contentArgPosition >= 0) {
                Type type = method.getGenericParameterTypes()[contentArgPosition];
                if (type instanceof ParameterizedType) {
                    ParameterizedType pType = (ParameterizedType) type;
                    if (pType.getActualTypeArguments() != null) {
                        genericContentType = (Class<?>) pType.getActualTypeArguments()[0];
                    }
                }
            }
        }
Extracts information from Ribbon annotated method, to automatically populate the Ribbon request template.
A few validations are performed as well:
- a return type must be {@link com.netflix.ribbon.RibbonRequest}
- HTTP method must be always specified explicitly (there are no defaults)
- only one parameter with {@link com.netflix.ribbon.proxy.annotation.Content} annotation is allowed

@author Tomasz Bak
ribbon/src/main/java/com/netflix/ribbon/proxy/MethodTemplate.java