1 19 20 package org.efs.openreports.providers.impl; 21 22 import java.io.File ; 23 import java.util.ArrayList ; 24 import java.util.List ; 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 public ReportProviderImpl(DirectoryProvider directoryProvider) throws ProviderException 49 { 50 this.directoryProvider = directoryProvider; 51 init(); 52 } 53 54 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 getReportFileNames() throws ProviderException 73 { 74 File file = new File (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 [] files = file.listFiles(); 84 85 ArrayList fileNames = new ArrayList (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 id) throws ProviderException 102 { 103 return reportPersistenceProvider.getReport(id); 104 } 105 106 public Report getReport(String reportName) throws ProviderException 107 { 108 return reportPersistenceProvider.getReport(reportName); 109 } 110 111 112 public List 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 |