1 19 20 package org.efs.openreports.services; 21 22 import java.util.ArrayList ; 23 import java.util.Iterator ; 24 25 import org.apache.log4j.Logger; 26 import org.efs.openreports.objects.ReportUser; 27 import org.efs.openreports.objects.ReportUserAlert; 28 import org.efs.openreports.providers.AlertProvider; 29 import org.efs.openreports.providers.ProviderException; 30 import org.efs.openreports.providers.UserProvider; 31 import org.efs.openreports.services.info.AlertInfo; 32 import org.efs.openreports.services.util.Converter; 33 34 39 40 public class AlertServiceImpl implements AlertService 41 { 42 private static Logger log = Logger.getLogger(AlertServiceImpl.class.getName()); 43 44 private AlertProvider alertProvider; 45 private UserProvider userProvider; 46 47 public AlertServiceImpl() 48 { 49 log.info("AlertService: Started"); 50 } 51 52 public AlertInfo[] getAlerts(String 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 alerts = new ArrayList (); 67 68 Iterator iterator = user.getAlerts().iterator(); 69 while(iterator.hasNext()) 70 { 71 ReportUserAlert userAlert = (ReportUserAlert) iterator.next(); 72 userAlert.setUser(user); 73 74 try 75 { 76 userAlert = alertProvider.executeAlert(userAlert, false); 77 78 alerts.add(Converter.convertToAlertInfo(userAlert)); 79 } 80 catch (ProviderException e) 81 { 82 AlertInfo alertInfo = new AlertInfo(); 83 alertInfo.setMessage(e.toString()); 84 85 alerts.add(alertInfo); 86 } 87 } 88 89 AlertInfo[] alertInfos = new AlertInfo[alerts.size()]; 90 alerts.toArray(alertInfos); 91 92 return alertInfos; 93 } 94 95 public void setAlertProvider(AlertProvider alertProvider) 96 { 97 this.alertProvider = alertProvider; 98 } 99 100 public void setUserProvider(UserProvider userProvider) 101 { 102 this.userProvider = userProvider; 103 } 104 } 105 | Popular Tags |