1 19 20 package org.efs.openreports.engine; 21 22 import org.apache.log4j.Logger; 23 import org.efs.openreports.engine.input.ReportEngineInput; 24 import org.efs.openreports.engine.output.ReportEngineOutput; 25 import org.efs.openreports.objects.Report; 26 import org.efs.openreports.providers.DataSourceProvider; 27 import org.efs.openreports.providers.DirectoryProvider; 28 import org.efs.openreports.providers.PropertiesProvider; 29 import org.efs.openreports.providers.ProviderException; 30 31 32 39 40 public class ReportEngine 41 { 42 protected static Logger log = Logger.getLogger(ReportEngine.class.getName()); 43 44 public static final int EXPORT_PDF = 0; 46 public static final int EXPORT_XLS = 1; 47 public static final int EXPORT_HTML = 2; 48 public static final int EXPORT_CSV = 3; 49 public static final int EXPORT_IMAGE = 4; 50 public static final int EXPORT_RTF = 5; 51 public static final int EXPORT_TEXT = 6; 52 public static final int EXPORT_EXCEL = 7; 53 54 protected DataSourceProvider dataSourceProvider; 55 protected DirectoryProvider directoryProvider; 56 protected PropertiesProvider propertiesProvider; 57 58 public ReportEngine(DataSourceProvider dataSourceProvider, 59 DirectoryProvider directoryProvider, PropertiesProvider propertiesProvider) 60 { 61 this.dataSourceProvider = dataSourceProvider; 62 this.directoryProvider = directoryProvider; 63 this.propertiesProvider = propertiesProvider; 64 } 65 66 public ReportEngineOutput generateReport(ReportEngineInput input) throws ProviderException 67 { 68 Report report = input.getReport(); 69 ReportEngine reportEngine = null; 70 71 if (report.isChartReport()) 72 { 73 reportEngine = new ChartReportEngine(dataSourceProvider, directoryProvider, propertiesProvider); 74 } 75 else if (report.isJXLSReport()) 76 { 77 reportEngine = new JXLSReportEngine(dataSourceProvider, directoryProvider, propertiesProvider); 78 } 79 else if (report.isJFreeReport()) 80 { 81 reportEngine = new JFreeReportEngine(dataSourceProvider, directoryProvider, propertiesProvider); 82 } 83 else if (report.isBirtReport()) 84 { 85 reportEngine = new BirtReportEngine(dataSourceProvider, directoryProvider, propertiesProvider); 86 } 87 else if (report.isJasperReport()) 88 { 89 reportEngine = new JasperReportEngine(dataSourceProvider, directoryProvider, propertiesProvider); 90 } 91 else if (report.isQueryReport()) 92 { 93 reportEngine = new QueryReportEngine(dataSourceProvider, directoryProvider, propertiesProvider); 94 } 95 96 if (reportEngine == null) 97 { 98 String message = report.getName() + " is invalid. Please verify report definition."; 99 100 log.error(message); 101 throw new ProviderException(message); 102 } 103 104 try 105 { 106 return reportEngine.generateReport(input); 107 } 108 catch (Exception e) 109 { 110 if (e.getMessage() != null && e.getMessage().indexOf("Empty") > 0) 111 { 112 e.printStackTrace(); 113 } 114 115 throw new ProviderException(e); 116 } 117 } 118 } 119 | Popular Tags |