/* * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javax.management.remote; import java.io.IOException; import java.io.InvalidObjectException; import java.io.ObjectInputStream; import java.io.Serializable; import javax.management.Notification; /** *
A (Notification, Listener ID) pair.
*This class is used to associate an emitted notification * with the listener ID to which it is targeted.
* * @since 1.5 */ public class TargetedNotification implements Serializable { private static final long serialVersionUID = 7676132089779300926L; // If we replace Integer with int... // /** // *Constructs a TargetedNotification
object. The
// * object contains a pair (Notification, Listener ID).
// * The Listener ID identifies the client listener to which that
// * notification is targeted. The client listener ID is one
// * previously returned by the connector server in response to an
// * addNotificationListener
request.
Constructs a TargetedNotification
object. The
* object contains a pair (Notification, Listener ID).
* The Listener ID identifies the client listener to which that
* notification is targeted. The client listener ID is one
* previously returned by the connector server in response to an
* addNotificationListener
request.
The emitted notification.
* * @return The notification. */ public Notification getNotification() { return notif; } /** *The ID of the listener to which the notification is * targeted.
* * @return The listener ID. */ public Integer getListenerID() { return id; } /** * Returns a textual representation of this Targeted Notification. * * @return a String representation of this Targeted Notification. **/ public String toString() { return "{" + notif + ", " + id + "}"; } /** * @serial A notification to transmit to the other side. * @see #getNotification() **/ private Notification notif; /** * @serial The ID of the listener to which the notification is * targeted. * @see #getListenerID() **/ private Integer id; //private final int id; // Needed if we use int instead of Integer... // private static int intValue(Integer id) { // if (id == null) throw new // IllegalArgumentException("Invalid listener ID: null"); // return id.intValue(); // } private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException { ois.defaultReadObject(); try { validate(this.notif, this.id); } catch (IllegalArgumentException e) { throw new InvalidObjectException(e.getMessage()); } } private static void validate(Notification notif, Integer id) throws IllegalArgumentException { if (notif == null) { throw new IllegalArgumentException("Invalid notification: null"); } if (id == null) { throw new IllegalArgumentException("Invalid listener ID: null"); } } }