public IReportDocument openReportDocument(String systemId, IDocArchiveReader archive, Map options)
      throws EngineException {
    if (options == null) {
      options = new HashMap();
    }
    intializeModuleOptions(options);

    ReportDocumentReader reader = new ReportDocumentReader(systemId, engine, archive, options);
    engine.cacheOpenedDocument(reader);

    return reader;
  }