1 14 package org.jmanage.core.alert; 15 16 import org.jmanage.core.config.AlertConfig; 17 import org.jmanage.core.util.Loggers; 18 19 import java.util.List ; 20 import java.util.Iterator ; 21 import java.util.logging.Logger ; 22 import java.util.logging.Level ; 23 24 29 public class Alert implements AlertHandler { 30 31 private static Logger logger = Loggers.getLogger(Alert.class); 32 33 private final AlertConfig alertConfig; 34 private final AlertSource source; 35 private final List deliveries; 36 37 public Alert(AlertConfig alertConfig){ 38 assert alertConfig != null; 39 this.alertConfig = alertConfig; 40 this.source = AlertSourceFactory.getAlertSource( 41 alertConfig.getAlertSourceConfig()); 42 this.deliveries = AlertDeliveryFactory.getAlertDeliveries(alertConfig); 43 } 44 45 public void register(){ 46 source.register(this, alertConfig.getAlertId(), alertConfig.getAlertName()); 47 } 48 49 public void unregister(){ 50 source.unregister(); 51 } 52 53 public void handle(AlertInfo alertInfo) { 54 alertInfo.setAlertConfig(this.alertConfig); 55 for(Iterator it=deliveries.iterator(); it.hasNext(); ){ 56 try { 57 AlertDelivery delivery = (AlertDelivery)it.next(); 58 delivery.deliver(alertInfo); 59 } catch (Exception e) { 60 logger.log(Level.SEVERE, "Error while deliverying alert", e); 61 } 63 } 64 } 65 66 public int hashCode(){ 67 return alertConfig.getAlertId().hashCode(); 68 } 69 70 public boolean equals(Object obj){ 71 if(obj != null && obj instanceof Alert){ 72 Alert alert = (Alert)obj; 73 return alert.alertConfig.getAlertId().equals( 74 alertConfig.getAlertId()); 75 } 76 return false; 77 } 78 } 79 | Popular Tags |