code: @Override
  	@SuppressWarnings("unchecked")
  	public <T> T send(Request<T> request) {
  
  		if (request == null) {
  			throw new CommunicationErrorException("Request cannot be null.");
  		}
  		PathUtil.infixPotentialPathDefaults(request, request.getClass());
  		RequestUtil.validate(request);
  
  		T response;
  		try {
  			response = (T) dispatchByMethod(request);
  		} catch (AuthorizationException ae) {
  			renewToken();
  			response = (T) dispatchByMethod(request);
  		}
  
  		return response;
  	}
docs: {@inheritDoc}