public AnalyticsResults getResults(AnalyticsQuery analyticsQuery) throws AnalyticsException {
    logger.info("Entered");
    AnalyticsResults results = new AnalyticsResults();
    try {
      String tableId = (new StringBuilder()).append("ga:").append(profileId).toString();
      com.google.api.services.analytics.Analytics.Data.Ga.Get get =
          analytics
              .data()
              .ga()
              .get(
                  tableId,
                  analyticsQuery.getStartDate(),
                  analyticsQuery.getEndDate(),
                  analyticsQuery.getMetrics());
      if (!StringUtils.isBlank(analyticsQuery.getDimensions())) {
        logger.info(
            (new StringBuilder())
                .append("Adding Dimensions:")
                .append(analyticsQuery.getDimensions())
                .toString());
        get.setDimensions(analyticsQuery.getDimensions());
      }
      if (!StringUtils.isBlank(analyticsQuery.getSort())) {
        logger.info(
            (new StringBuilder())
                .append("Adding Sort:")
                .append(analyticsQuery.getSort())
                .toString());
        get.setSort(analyticsQuery.getSort());
      }
      if (!StringUtils.isBlank(analyticsQuery.getFilters())) {
        logger.info(
            (new StringBuilder())
                .append("Adding Filter:")
                .append(analyticsQuery.getFilters())
                .toString());
        get.setFilters(analyticsQuery.getFilters());
      }
      if (analyticsQuery.getMaxResults().intValue() > 0)
        get.setMaxResults(analyticsQuery.getMaxResults());
      else {
        get.setMaxResults(Integer.valueOf(50));
      }
      GaData gaData = get.execute();
      if (gaData.getRows() == null || gaData.getRows().isEmpty()) {
        logger.info("No results Found.");
      } else {
        results.setEmpty(false);
        String header;
        for (Iterator i$ = gaData.getColumnHeaders().iterator();
            i$.hasNext();
            results.addHeader(header)) {
          com.google.api.services.analytics.model.GaData.ColumnHeaders columnHeader =
              (com.google.api.services.analytics.model.GaData.ColumnHeaders) i$.next();
          header = columnHeader.getName();
          logger.info((new StringBuilder()).append("Header : ").append(header).toString());
        }

        AnalyticsData analyticsData;
        for (Iterator i$ = gaData.getRows().iterator();
            i$.hasNext();
            results.addData(analyticsData)) {
          List row = (List) i$.next();
          analyticsData = new AnalyticsData();
          for (int i = 0; i < row.size(); i++) {
            String data = (String) row.get(i);
            header = (String) results.getHeaders().get(i);
            logger.info((new StringBuilder()).append("Header : ").append(header).toString());
            logger.info((new StringBuilder()).append("Data   : ").append(data).toString());
            analyticsData.put(header, data);
          }
        }
      }
    } catch (Exception expGeneral) {
      throw new AnalyticsException(expGeneral);
    }
    logger.info("Leaving");
    return results;
  }