1 /* 2 * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 27 package com.sun.jmx.snmp.agent; 28 29 30 31 // jmx imports 32 // 33 import javax.management.Notification; 34 import javax.management.ObjectName; 35 36 /** 37 * Represents a notification emitted when an 38 * entry is added or deleted from an SNMP table. 39 * <P> 40 * The <CODE>SnmpTableEntryNotification</CODE> object contains 41 * the reference to the entry added or removed from the table. 42 * <P> 43 * The list of notifications fired by the <CODE>SnmpMibTable</CODE> is 44 * the following: 45 * <UL> 46 * <LI>A new entry has been added to the SNMP table. 47 * <LI>An existing entry has been removed from the SNMP table. 48 </UL> 49 * 50 * <p><b>This API is a Sun Microsystems internal API and is subject 51 * to change without notice.</b></p> 52 */ 53 54 public class SnmpTableEntryNotification extends Notification { 55 56 /** 57 * Creates and initializes a table entry notification object. 58 * 59 * @param type The notification type. 60 * @param source The notification producer. 61 * @param sequenceNumber The notification sequence number within the 62 * source object. 63 * @param timeStamp The notification emission date. 64 * @param entry The entry object (may be null if the entry is 65 * registered in the MBeanServer). 66 * @param entryName The ObjectName entry object (may be null if the 67 * entry is not registered in the MBeanServer). 68 * @since 1.5 69 */ 70 SnmpTableEntryNotification(String type, Object source, 71 long sequenceNumber, long timeStamp, 72 Object entry, ObjectName entryName) { 73 74 super(type, source, sequenceNumber, timeStamp); 75 this.entry = entry; 76 this.name = entryName; 77 } 78 79 /** 80 * Gets the entry object. 81 * May be null if the entry is registered in the MBeanServer, and the 82 * MIB is using the generic MetaData (see mibgen). 83 * 84 * @return The entry. 85 */ 86 public Object getEntry() { 87 return entry; 88 } 89 90 /** 91 * Gets the ObjectName of the entry. 92 * May be null if the entry is not registered in the MBeanServer. 93 * 94 * @return The ObjectName of the entry. 95 * @since 1.5 96 */ 97 public ObjectName getEntryName() { 98 return name; 99 } 100 101 // PUBLIC VARIABLES 102 //----------------- 103 104 /** 105 * Notification type denoting that a new entry has been added to the 106 * SNMP table. 107 * <BR>The value of this notification type is 108 * <CODE>jmx.snmp.table.entry.added</CODE>. 109 */ 110 public static final String SNMP_ENTRY_ADDED = 111 "jmx.snmp.table.entry.added"; 112 113 /** 114 * Notification type denoting that an entry has been removed from the 115 * SNMP table. 116 * <BR>The value of this notification type is 117 * <CODE>jmx.snmp.table.entry.removed</CODE>. 118 */ 119 public static final String SNMP_ENTRY_REMOVED = 120 "jmx.snmp.table.entry.removed"; 121 122 // PRIVATE VARIABLES 123 //------------------ 124 125 /** 126 * The entry object. 127 * @serial 128 */ 129 private final Object entry; 130 131 /** 132 * The entry name. 133 * @serial 134 * @since 1.5 135 */ 136 private final ObjectName name; 137 138 // Ensure compatibility 139 // 140 private static final long serialVersionUID = 5832592016227890252L; 141 }