/** {@inheritDoc} */
  public void endElement(String uri, String localName, String qName) throws SAXException {
    if ("testcase".equals(qName)) {
      currentSuite.getTestCases().add(testCase);
    } else if ("failure".equals(qName)) {
      Map<String, Object> failure = testCase.getFailure();

      failure.put("detail", parseCause(currentElement.toString()));
    } else if ("error".equals(qName)) {
      Map<String, Object> error = testCase.getFailure();

      error.put("detail", parseCause(currentElement.toString()));
    } else if ("time".equals(qName)) {
      try {
        Number time = numberFormat.parse(currentElement.toString());
        defaultSuite.setTimeElapsed(time.floatValue());
      } catch (ParseException e) {
        throw new SAXException(e.getMessage(), e);
      }
    }
    // TODO extract real skipped reasons
  }