package gw.rating.rtm uses com.guidewire.pl.system.dependency.PLDependencies uses gw.api.locale.DisplayKey uses gw.api.util.DisplayableException uses gw.api.web.document.DocumentsHelper uses gw.document.DocumentContentsInfo uses gw.rating.rtm.excel.ExcelExport uses java.util.zip.GZIPInputStream /** * A class responsible for starting asynchronous export for a given Rate book. */ class RateBookBatchExport { function start(rateBook : RateBook, exportType : RateBookExportType) { RateBookExportWorkQueue.initializeRateBookExportResultAndCreateWorkItem(rateBook, exportType, rateBook.Bundle) PLDependencies.getDistributedWorkerManager().notifyExecutor(BatchProcessType.TC_RATEBOOKEXPORT) } function downloadFile(rateBookExportResult : RateBookExportResult) { if (rateBookExportResult.Data == null) { throw new DisplayableException(DisplayKey.get("Web.Rating.RateBooks.NoExportedExcelDataFound")) } var rateBook = rateBookExportResult.RateBook var title = rateBook.LocalisedBookName + " - " + rateBook.BookEdition using (var inputStream = new GZIPInputStream(rateBookExportResult.Data.toInputStream())) { var fileName : String var dci : DocumentContentsInfo if (rateBookExportResult.ExcelType) { fileName = "${title}.xlsx" dci = new DocumentContentsInfo(DocumentContentsInfo.ContentResponseType.DOCUMENT_CONTENTS, inputStream, ExcelExport.EXCEL_MIME_TYPE) } else { fileName = "${title}.xml" dci = new DocumentContentsInfo(DocumentContentsInfo.ContentResponseType.DOCUMENT_CONTENTS, inputStream, "text/xml") } DocumentsHelper.renderDocumentContentsWithDownloadDisposition(fileName, dci) } } }