KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > efs > openreports > engine > ReportEngine


1 /*
2  * Copyright (C) 2006 Erik Swenson - erik@oreports.com
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the Free
6  * Software Foundation; either version 2 of the License, or (at your option)
7  * any later version.
8  *
9  * 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.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 /**
33  * ReportEngine base class. Delegates report generation to the specific ReportEngine
34  * implementation for each report type.
35  *
36  * @author Erik Swenson
37  *
38  */

39
40 public class ReportEngine
41 {
42     protected static Logger log = Logger.getLogger(ReportEngine.class.getName());
43
44     //export types
45
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 JavaDoc 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 JavaDoc 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