KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > efs > openreports > services > SchedulerServiceImpl


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.services;
21
22 import java.util.ArrayList JavaDoc;
23 import java.util.Iterator JavaDoc;
24
25 import org.apache.log4j.Logger;
26 import org.efs.openreports.objects.ReportSchedule;
27 import org.efs.openreports.objects.ReportUser;
28 import org.efs.openreports.providers.ProviderException;
29 import org.efs.openreports.providers.SchedulerProvider;
30 import org.efs.openreports.providers.UserProvider;
31 import org.efs.openreports.services.info.ReportScheduleInfo;
32 import org.efs.openreports.services.util.Converter;
33
34 /**
35  * SchedulerService implementation using standard OpenReports providers.
36  *
37  * @author Erik Swenson
38  */

39
40 public class SchedulerServiceImpl implements SchedulerService
41 {
42     private static Logger log = Logger.getLogger(SchedulerServiceImpl.class.getName());
43
44     private SchedulerProvider schedulerProvider;
45     private UserProvider userProvider;
46
47     public SchedulerServiceImpl()
48     {
49         log.info("SchedulerService: Started");
50     }
51     
52     public ReportScheduleInfo[] getScheduledReports(String JavaDoc userName)
53     {
54         ReportUser user = null;
55         
56         try
57         {
58             user = userProvider.getUser(userName);
59         }
60         catch(ProviderException pe)
61         {
62             log.warn(pe);
63             return null;
64         }
65         
66         ArrayList JavaDoc schedules = new ArrayList JavaDoc();
67         
68         try
69         {
70             Iterator JavaDoc iterator = schedulerProvider.getScheduledReports(user).iterator();
71             while(iterator.hasNext())
72             {
73                 ReportSchedule schedule = (ReportSchedule) iterator.next();
74             
75                 ReportScheduleInfo scheduleInfo = new ReportScheduleInfo();
76                 scheduleInfo.setNextFireDate(schedule.getNextFireDate());
77                 scheduleInfo.setReportName(schedule.getReport().getName());
78                 scheduleInfo.setScheduleDescription(schedule.getScheduleDescription());
79                 scheduleInfo.setScheduleTypeName(schedule.getScheduleTypeName());
80
81                 if (schedule.getAlert() != null)
82                 {
83                     scheduleInfo.setAlert(Converter.convertToAlertInfo(schedule.getAlert()));
84                 }
85                 
86                 schedules.add(scheduleInfo);
87             }
88         }
89         catch(ProviderException pe)
90         {
91             log.warn(pe);
92         }
93         
94         ReportScheduleInfo[] scheduleInfos = new ReportScheduleInfo[schedules.size()];
95         schedules.toArray(scheduleInfos);
96         
97         return scheduleInfos;
98     }
99
100     public void setUserProvider(UserProvider userProvider)
101     {
102         this.userProvider = userProvider;
103     }
104
105     public void setSchedulerProvider(SchedulerProvider schedulerProvider)
106     {
107         this.schedulerProvider = schedulerProvider;
108     }
109 }
110
Popular Tags