KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > efs > openreports > providers > impl > ReportProviderImpl


1 /*
2  * Copyright (C) 2002 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.providers.impl;
21
22 import java.io.File JavaDoc;
23 import java.util.ArrayList JavaDoc;
24 import java.util.List JavaDoc;
25
26 import org.apache.log4j.Logger;
27 import org.efs.openreports.objects.Report;
28 import org.efs.openreports.providers.DirectoryProvider;
29 import org.efs.openreports.providers.DirectoryProviderAware;
30 import org.efs.openreports.providers.ProviderException;
31 import org.efs.openreports.providers.ReportProvider;
32 import org.efs.openreports.providers.persistence.ReportPersistenceProvider;
33
34 import com.opensymphony.xwork.ActionContext;
35 import com.opensymphony.xwork.interceptor.component.ComponentManager;
36
37 public class ReportProviderImpl
38     implements ReportProvider, DirectoryProviderAware
39 {
40     protected static Logger log =
41         Logger.getLogger(ReportProviderImpl.class.getName());
42     
43     private ReportPersistenceProvider reportPersistenceProvider;
44
45     private DirectoryProvider directoryProvider;
46
47     // constructor for Spring IOC
48
public ReportProviderImpl(DirectoryProvider directoryProvider) throws ProviderException
49     {
50         this.directoryProvider = directoryProvider;
51         init();
52     }
53     
54     // constructor for WebWork IOC
55
public ReportProviderImpl() throws ProviderException
56     {
57         ComponentManager container =
58             (ComponentManager) ActionContext.getContext().get(
59                 "com.opensymphony.xwork.interceptor.component.ComponentManager");
60
61         container.initializeObject(this);
62         
63         init();
64     }
65     
66     protected void init() throws ProviderException
67     {
68         reportPersistenceProvider = new ReportPersistenceProvider();
69         log.info("ReportProviderImpl created");
70     }
71
72     public List JavaDoc getReportFileNames() throws ProviderException
73     {
74         File JavaDoc file = new File JavaDoc(directoryProvider.getReportDirectory());
75         
76         if (!file.exists())
77         {
78             throw new ProviderException(
79                     "BaseDirectory Invalid: Set baseDirectory in openreports.properties to full path "
80                             + " of directory containing your JasperReports files ");
81         }
82         
83         File JavaDoc[] files = file.listFiles();
84
85         ArrayList JavaDoc fileNames = new ArrayList JavaDoc(files.length);
86         for (int i = 0; i < files.length; i++)
87         {
88             if (files[i].getName().endsWith(".jasper")
89                     || files[i].getName().endsWith(".rptdesign")
90                     || files[i].getName().endsWith(".vm")
91                     || files[i].getName().endsWith(".xml")
92                     || files[i].getName().endsWith(".xls"))
93             {
94                 fileNames.add(files[i].getName());
95             }
96         }
97
98         return fileNames;
99     }
100
101     public Report getReport(Integer JavaDoc id) throws ProviderException
102     {
103         return reportPersistenceProvider.getReport(id);
104     }
105     
106     public Report getReport(String JavaDoc reportName) throws ProviderException
107     {
108         return reportPersistenceProvider.getReport(reportName);
109     }
110
111
112     public List JavaDoc getReports() throws ProviderException
113     {
114         return reportPersistenceProvider.getReports();
115     }
116
117     public Report insertReport(Report report) throws ProviderException
118     {
119         return reportPersistenceProvider.insertReport(report);
120     }
121
122     public void updateReport(Report report) throws ProviderException
123     {
124         reportPersistenceProvider.updateReport(report);
125     }
126
127     public void deleteReport(Report report) throws ProviderException
128     {
129         reportPersistenceProvider.deleteReport(report);
130     }
131
132     public void setDirectoryProvider(DirectoryProvider directoryProvider)
133     {
134         this.directoryProvider = directoryProvider;
135     }
136
137 }
Popular Tags