public Collection<ReportTestSuite> parse(InputStreamReader stream)
      throws ParserConfigurationException, SAXException, IOException {
    SAXParserFactory factory = SAXParserFactory.newInstance();

    SAXParser saxParser = factory.newSAXParser();

    valid = true;

    classesToSuites = new HashMap<String, ReportTestSuite>();

    saxParser.parse(new InputSource(stream), this);

    if (currentSuite
        != defaultSuite) { // omit the defaultSuite if it's empty and there are alternatives
      if (defaultSuite.getNumberOfTests() == 0) {
        classesToSuites.remove(defaultSuite.getFullClassName());
      }
    }

    return classesToSuites.values();
  }