@Override
  public void visitMetricReport(MetricReport metricReport) {
    m_startDate = metricReport.getStartTime();
    m_endDate = metricReport.getEndTime();

    super.visitMetricReport(metricReport);
  }
  @Override
  public void visitMetricItem(MetricItem metricItem) {
    m_id = metricItem.getId();
    m_type = metricItem.getType();

    super.visitMetricItem(metricItem);
  }
  @Override
  public void visitGroup(Group group) {
    m_variation = group.getName();

    if (m_variation.length() == 0) {
      m_variation = "Control";
    }

    super.visitGroup(group);
  }
  @Override
  public void visitAbtest(Abtest abtest) {
    try {
      m_runId = Integer.parseInt(abtest.getRunId());
    } catch (Exception e) {
      m_runId = -1;
    }

    HashMap<String, String> map = m_metrics.get(m_runId);

    if (map == null) {
      map = new HashMap<String, String>();

      m_metrics.put(m_runId, map);
    }

    map.put(m_id, m_type);
    super.visitAbtest(abtest);
  }