private void extractResultType() {
            Class<?> returnClass = method.getReturnType();
            if (!returnClass.isAssignableFrom(RibbonRequest.class)) {
                throw new ProxyAnnotationException(format("Method %s must return RibbonRequest<ByteBuf> type not %s",
                        methodName(), returnClass.getSimpleName()));
            }
            ParameterizedType returnType = (ParameterizedType) method.getGenericReturnType();
            resultType = (Class<?>) returnType.getActualTypeArguments()[0];
            if (!ByteBuf.class.isAssignableFrom(resultType)) {
                throw new ProxyAnnotationException(format("Method %s must return RibbonRequest<ByteBuf> type; instead %s type parameter found",
                        methodName(), resultType.getSimpleName()));
            }
        }
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