code: ReportBodyProvider getReportBodyProvider(ReportRequest request) {
      Preconditions.checkNotNull(request, "Null request");
      Preconditions.checkNotNull(request.getRequestType(), "Null request type");
      switch (request.getRequestType()) {
        case AWQL:
          return new AwqlReportBodyProvider(request.getReportRequestString(),
              request.getDownloadFormat().name());
        case XML:
          return new ReportDefinitionBodyProvider(request.getReportRequestString());
        default:
          throw new IllegalArgumentException(
              "Unrecognized request type: " + request.getRequestType());
      }
    }
docs: Returns the {@link ReportBodyProvider} for the given request.
  
  @throws NullPointerException if either {@code request} is null or
  {@code request.getRequestType()} is null