1 13 package org.pentaho.plugin.jfreereport.outputs; 14 15 import java.io.IOException ; 16 import java.io.OutputStream ; 17 import java.io.OutputStreamWriter ; 18 19 import org.jfree.report.JFreeReport; 20 import org.jfree.report.ReportProcessingException; 21 import org.jfree.report.modules.output.table.csv.CSVTableProcessor; 22 import org.pentaho.plugin.jfreereport.helper.YieldReportListener; 23 24 29 public class JFreeReportCSVComponent extends AbstractGenerateStreamContentComponent { 30 private static final long serialVersionUID = -6277594193744555596L; 31 32 public JFreeReportCSVComponent() { 33 } 34 35 protected String getMimeType() { 36 return "text/csv"; } 38 39 protected String getExtension() { 40 return ".csv"; } 42 43 protected boolean performExport(final JFreeReport report, final OutputStream outputStream) { 44 try { 45 CSVTableProcessor processor = new CSVTableProcessor(report); 46 OutputStreamWriter writer = new OutputStreamWriter (outputStream); 47 processor.setWriter(writer); 48 final int yieldRate = getYieldRate(); 49 if (yieldRate > 0) { 50 processor.addRepaginationListener(new YieldReportListener(yieldRate)); 51 } 52 processor.processReport(); 53 writer.close(); 54 return true; 55 } catch (ReportProcessingException e) { 56 return false; 57 } catch (IOException e) { 58 return false; 59 } 60 } 61 } 62 | Popular Tags |