01: /*
02: * Copyright (C) 2006 Erik Swenson - erik@oreports.com
03: *
04: * This program is free software; you can redistribute it and/or modify it
05: * under the terms of the GNU General Public License as published by the Free
06: * Software Foundation; either version 2 of the License, or (at your option)
07: * any later version.
08: *
09: * This program is distributed in the hope that it will be useful, but WITHOUT
10: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12: * more details.
13: *
14: * You should have received a copy of the GNU General Public License along with
15: * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16: * Place - Suite 330, Boston, MA 02111-1307, USA.
17: *
18: */
19:
20: package org.efs.openreports.engine;
21:
22: import org.apache.log4j.Logger;
23: import org.efs.openreports.objects.Report;
24: import org.efs.openreports.providers.DataSourceProvider;
25: import org.efs.openreports.providers.DirectoryProvider;
26: import org.efs.openreports.providers.PropertiesProvider;
27: import org.efs.openreports.providers.ProviderException;
28:
29: /**
30: * ReportEngine base class. Delegates report generation to the specific ReportEngine
31: * implementation for each report type.
32: *
33: * @author Erik Swenson
34: *
35: */
36:
37: public class ReportEngineHelper {
38: protected static Logger log = Logger
39: .getLogger(ReportEngineHelper.class.getName());
40:
41: public static ReportEngine getReportEngine(Report report,
42: DataSourceProvider dataSourceProvider,
43: DirectoryProvider directoryProvider,
44: PropertiesProvider propertiesProvider)
45: throws ProviderException {
46: ReportEngine reportEngine = null;
47:
48: if (report.isChartReport()) {
49: reportEngine = new ChartReportEngine(dataSourceProvider,
50: directoryProvider, propertiesProvider);
51: } else if (report.isJXLSReport()) {
52: reportEngine = new JXLSReportEngine(dataSourceProvider,
53: directoryProvider, propertiesProvider);
54: } else if (report.isJFreeReport()) {
55: reportEngine = new JFreeReportEngine(dataSourceProvider,
56: directoryProvider, propertiesProvider);
57: } else if (report.isBirtReport()) {
58: reportEngine = new BirtReportEngine(dataSourceProvider,
59: directoryProvider, propertiesProvider);
60: } else if (report.isJasperReport()) {
61: reportEngine = new JasperReportEngine(dataSourceProvider,
62: directoryProvider, propertiesProvider);
63: } else if (report.isQueryReport()) {
64: reportEngine = new QueryReportEngine(dataSourceProvider,
65: directoryProvider, propertiesProvider);
66: } else if (report.isVelocityReport()) {
67: reportEngine = new VelocityReportEngine(dataSourceProvider,
68: directoryProvider, propertiesProvider);
69: }
70:
71: if (reportEngine == null) {
72: String message = report.getName()
73: + " is invalid. Please verify report definition.";
74:
75: log.error(message);
76: throw new ProviderException(message);
77: }
78:
79: return reportEngine;
80: }
81: }
|