From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- .../classpath/javax/management/Notification.java | 334 +++++++++++++++++++++ 1 file changed, 334 insertions(+) create mode 100644 libjava/classpath/javax/management/Notification.java (limited to 'libjava/classpath/javax/management/Notification.java') diff --git a/libjava/classpath/javax/management/Notification.java b/libjava/classpath/javax/management/Notification.java new file mode 100644 index 000000000..0831c297c --- /dev/null +++ b/libjava/classpath/javax/management/Notification.java @@ -0,0 +1,334 @@ +/* Notification.java -- A notification emitted by a bean. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.management; + +import java.io.IOException; +import java.io.ObjectOutputStream; + +import java.util.Date; +import java.util.EventObject; + +/** + *

+ * A notification message that may be emitted by a bean. + * Notifications have both a message and a type, so individual + * notifications can be grouped by type. They also incorporate + * sequencing, so that the recipient can order the delivered + * messages correctly (there is no guarantee that they will + * be delivered in order). + *

+ *

+ * Notifications also include a reference to the source of + * the notification. The source bean is represented either + * by an {@link ObjectName} or by a direct reference to the + * bean. The former is preferable, and notifications emitted + * via a {@link MBeanServer} will automatically have the source + * transformed into an {@link ObjectName}. + *

+ * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class Notification + extends EventObject +{ + + /** + * Compatible with JDK 1.6 + */ + private static final long serialVersionUID = -7516092053498031989L; + + /** + * The notification message. + * + * @serial the notification message. + */ + private String message; + + /** + * The notification's sequence number, relative to the notifications + * emitted by the bean. + * + * @serial the notification sequence number. + */ + private long sequenceNumber; + + /** + * The source of the notification. This is redeclared in order to + * replace the source variable in {@link java.util.EventObject} + * with a non-transient version. + * + * @serial the notification source. + */ + protected Object source; + + /** + * The time the notification was generated. + * + * @serial the notification timestamp. + */ + private long timeStamp; + + /** + * The type of notification sent. This utilises the same style + * as Java property and package names. For example, + * gnu.gcj.compiler may be one type of notifications. + * + * @serial the notification type. + */ + private String type; + + /** + * The user data associated with the notification. This includes + * any additional data which should be transmitted with the notification, + * but can't be achieved using the {@link java.lang.String} format + * of the message. + * + * @serial the notification user data. + */ + private Object userData; + + /** + * Creates a new {@link Notification} object with the specified type, + * source and sequence number. The timestamp is created using the + * current date and time. + * + * @param type the type of the notification. + * @param source the source of the notification. + * @param sequenceNumber the sequence number of the notifcation. + */ + public Notification(String type, Object source, long sequenceNumber) + { + this(type, source, sequenceNumber, new Date().getTime()); + } + + /** + * Creates a new {@link Notification} object with the specified type, + * source, sequence number and timestamp. + * + * @param type the type of the notification. + * @param source the source of the notification. + * @param sequenceNumber the sequence number of the notifcation. + * @param timeStamp the time the notification was emitted. + */ + public Notification(String type, Object source, long sequenceNumber, + long timeStamp) + { + this(type, source, sequenceNumber, timeStamp, ""); + } + + /** + * Creates a new {@link Notification} object with the specified type, + * source, sequence number, timestamp and message. + * + * @param type the type of the notification. + * @param source the source of the notification. + * @param sequenceNumber the sequence number of the notifcation. + * @param timeStamp the time the notification was emitted. + * @param message the message contained in the notification. + */ + public Notification(String type, Object source, long sequenceNumber, + long timeStamp, String message) + { + super(source); + this.type = type; + this.source = source; + this.sequenceNumber = sequenceNumber; + this.timeStamp = timeStamp; + this.message = message; + } + + /** + * Creates a new {@link Notification} object with the specified type, + * source, sequence number and message. The timestamp is created using + * the current date and time. + * + * @param type the type of the notification. + * @param source the source of the notification. + * @param sequenceNumber the sequence number of the notifcation. + * @param message the message contained in the notification. + */ + public Notification(String type, Object source, long sequenceNumber, + String message) + { + this(type, source, sequenceNumber, new Date().getTime(), message); + } + + /** + * Returns the message contained in this notification. The message + * is in {@link java.lang.String} form, and is thus intended for + * display to the end-user. Data transferred as part of the notification + * which shouldn't be displayed is included in the userData + * field. + * + * @return the notification message. + * @see #getUserData() + * @see #setUserData(java.lang.Object) + */ + public String getMessage() + { + return message; + } + + /** + * Returns the sequence number of this notification. This + * can be used to determine the order in which notifications + * were emitted by the broadcasting bean. + * + * @return the sequence number. + * @see #setSequenceNumber(long) + */ + public long getSequenceNumber() + { + return sequenceNumber; + } + + /** + * Returns the date and time at which this notification was + * emitted. + * + * @return the notification timestamp. + * @see #setTimeStamp(long) + */ + public long getTimeStamp() + { + return timeStamp; + } + + /** + * Returns the type of this notification. Types take the same + * form as Java package and property names. + * + * @return the type of the notification. + */ + public String getType() + { + return type; + } + + /** + * Returns the additional user data associated with the notification. + * This is used to attach additional non-textual information to the + * notification. + * + * @return the user data associated with the notification. + * @see #setUserData(java.lang.Object) + */ + public Object getUserData() + { + return userData; + } + + /** + * Sets the sequence number to the value specified. + * + * @param sequenceNumber the new sequence number. + * @see #getSequenceNumber() + */ + public void setSequenceNumber(long sequenceNumber) + { + this.sequenceNumber = sequenceNumber; + } + + /** + * Sets the source of this notification to the value + * specified. + * + * @param source the new source of the notification. + * @see java.util.EventSource#getSource() + */ + public void setSource(Object source) + { + this.source = source; + } + + /** + * Sets the date and time at which this notification + * was emitted. + * + * @param timeStamp the new time stamp of the notification. + * @see #getTimeStamp() + */ + public void setTimeStamp(long timeStamp) + { + this.timeStamp = timeStamp; + } + + /** + * Sets the additional user data associated with the notification + * to the specified value. This is used to attach additional + * non-textual information to the notification. + * + * @param userData the new user data associated with the notification. + * @see #getUserData() + */ + public void setUserData(Object userData) + { + this.userData = userData; + } + + /** + * A textual representation of the notification. + * + * @return the notification in {@link java.lang.String} form. + */ + public String toString() + { + return getClass().getName() + + "[message=" + message + + ", sequenceNumber=" + sequenceNumber + + ", source=" + source + + ", timeStamp=" + timeStamp + + ", type=" + type + + ", userData=" + userData + + "]"; + } + + /** + * Serialize the {@link Notification}. + * + * @param out the output stream to write to. + * @throws IOException if an I/O error occurs. + */ + private void writeObject(ObjectOutputStream out) + throws IOException + { + out.defaultWriteObject(); + } + +} -- cgit v1.2.3