NotificationEvent.java
/*
* NotificationEvent
*/
package gov.usgs.earthquake.distribution;
import gov.usgs.earthquake.product.Product;
import java.io.IOException;
import java.util.EventObject;
/**
* An event sent to a NotificationListener.
*
* These events are sent by a NotificationReceiver.
*/
public class NotificationEvent extends EventObject {
/** For serialization. */
private static final long serialVersionUID = 1L;
/** The notification that generated this event. */
private final Notification notification;
/**
* Construct a new NotificationEvent.
*
* @param source
* the source of this event, usually a NotificationReceiver.
* @param notification
* the notification that generated this event.
*/
public NotificationEvent(final NotificationReceiver source,
final Notification notification) {
super(source);
this.notification = notification;
}
/**
* Get the notification associated with this NotificationEvent.
*
* @return the associated notification.
*/
public Notification getNotification() {
return notification;
}
/**
* A convenience method that casts event source into a NotificationReceiver.
*
* @return source as a NotificationReceiver.
*/
public NotificationReceiver getNotificationReceiver() {
return (NotificationReceiver) getSource();
}
/**
* A convenience method to request a product.
*
* @return the requested product.
* @throws IOException
* if any errors occur while retrieving the product.
*/
public Product getProduct() throws Exception {
return getNotificationReceiver().retrieveProduct(
notification.getProductId());
}
}