1 /* 2 * Copyright (c) 2003, 2012, 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 package sun.management.snmp.jvmmib; 27 28 // 29 // Generated by mibgen version 5.0 (06/02/03) when compiling JVM-MANAGEMENT-MIB in standard metadata mode. 30 // 31 32 // java imports 33 // 34 import java.io.Serializable; 35 import java.util.Vector; 36 37 // jmx imports 38 // 39 import javax.management.MBeanServer; 40 import javax.management.ObjectName; 41 import com.sun.jmx.snmp.SnmpCounter; 42 import com.sun.jmx.snmp.SnmpCounter64; 43 import com.sun.jmx.snmp.SnmpGauge; 44 import com.sun.jmx.snmp.SnmpInt; 45 import com.sun.jmx.snmp.SnmpUnsignedInt; 46 import com.sun.jmx.snmp.SnmpIpAddress; 47 import com.sun.jmx.snmp.SnmpTimeticks; 48 import com.sun.jmx.snmp.SnmpOpaque; 49 import com.sun.jmx.snmp.SnmpString; 50 import com.sun.jmx.snmp.SnmpStringFixed; 51 import com.sun.jmx.snmp.SnmpOid; 52 import com.sun.jmx.snmp.SnmpNull; 53 import com.sun.jmx.snmp.SnmpValue; 54 import com.sun.jmx.snmp.SnmpVarBind; 55 import com.sun.jmx.snmp.SnmpStatusException; 56 57 // jdmk imports 58 // 59 import com.sun.jmx.snmp.agent.SnmpIndex; 60 import com.sun.jmx.snmp.agent.SnmpMib; 61 import com.sun.jmx.snmp.agent.SnmpMibTable; 62 import com.sun.jmx.snmp.agent.SnmpMibSubRequest; 63 import com.sun.jmx.snmp.agent.SnmpStandardObjectServer; 64 65 /** 66 * The class is used for implementing the "JvmMemManagerTable" group. 67 * The group is defined with the following oid: 1.3.6.1.4.1.42.2.145.3.163.1.1.2.100. 68 */ 69 public class JvmMemManagerTableMeta extends SnmpMibTable implements Serializable { 70 71 static final long serialVersionUID = 5026520607518015233L; 72 /** 73 * Constructor for the table. Initialize metadata for "JvmMemManagerTableMeta". 74 * The reference on the MBean server is updated so the entries created through an SNMP SET will be AUTOMATICALLY REGISTERED in Java DMK. 75 */ 76 public JvmMemManagerTableMeta(SnmpMib myMib, SnmpStandardObjectServer objserv) { 77 super(myMib); 78 objectserver = objserv; 79 } 80 81 82 /** 83 * Factory method for "JvmMemManagerEntry" entry metadata class. 84 * 85 * You can redefine this method if you need to replace the default 86 * generated metadata class with your own customized class. 87 * 88 * @param snmpEntryName Name of the SNMP Entry object (conceptual row) ("JvmMemManagerEntry") 89 * @param tableName Name of the table in which the entries are registered ("JvmMemManagerTable") 90 * @param mib The SnmpMib object in which this table is registered 91 * @param server MBeanServer for this table entries (may be null) 92 * 93 * @return An instance of the metadata class generated for the 94 * "JvmMemManagerEntry" conceptual row (JvmMemManagerEntryMeta) 95 * 96 **/ 97 protected JvmMemManagerEntryMeta createJvmMemManagerEntryMetaNode(String snmpEntryName, String tableName, SnmpMib mib, MBeanServer server) { 98 return new JvmMemManagerEntryMeta(mib, objectserver); 99 } 100 101 102 // ------------------------------------------------------------ 103 // 104 // Implements the "createNewEntry" method defined in "SnmpMibTable". 105 // See the "SnmpMibTable" Javadoc API for more details. 106 // 107 // ------------------------------------------------------------ 108 109 public void createNewEntry(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 110 throws SnmpStatusException { 111 if (factory != null) 112 factory.createNewEntry(req, rowOid, depth, this); 113 else 114 throw new SnmpStatusException( 115 SnmpStatusException.snmpRspNoAccess); 116 } 117 118 119 120 // ------------------------------------------------------------ 121 // 122 // Implements the "isRegistrationRequired" method defined in "SnmpMibTable". 123 // See the "SnmpMibTable" Javadoc API for more details. 124 // 125 // ------------------------------------------------------------ 126 127 public boolean isRegistrationRequired() { 128 return false; 129 } 130 131 132 133 public void registerEntryNode(SnmpMib mib, MBeanServer server) { 134 node = createJvmMemManagerEntryMetaNode("JvmMemManagerEntry", "JvmMemManagerTable", mib, server); 135 } 136 137 138 // ------------------------------------------------------------ 139 // 140 // Implements the "addEntry" method defined in "SnmpMibTable". 141 // See the "SnmpMibTable" Javadoc API for more details. 142 // 143 // ------------------------------------------------------------ 144 145 public synchronized void addEntry(SnmpOid rowOid, ObjectName objname, 146 Object entry) 147 throws SnmpStatusException { 148 if (! (entry instanceof JvmMemManagerEntryMBean) ) 149 throw new ClassCastException("Entries for Table \"" + 150 "JvmMemManagerTable" + "\" must implement the \"" + 151 "JvmMemManagerEntryMBean" + "\" interface."); 152 super.addEntry(rowOid, objname, entry); 153 } 154 155 156 // ------------------------------------------------------------ 157 // 158 // Implements the "get" method defined in "SnmpMibTable". 159 // See the "SnmpMibTable" Javadoc API for more details. 160 // 161 // ------------------------------------------------------------ 162 163 public void get(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 164 throws SnmpStatusException { 165 JvmMemManagerEntryMBean entry = (JvmMemManagerEntryMBean) getEntry(rowOid); 166 synchronized (this) { 167 node.setInstance(entry); 168 node.get(req,depth); 169 } 170 } 171 172 // ------------------------------------------------------------ 173 // 174 // Implements the "set" method defined in "SnmpMibTable". 175 // See the "SnmpMibTable" Javadoc API for more details. 176 // 177 // ------------------------------------------------------------ 178 179 public void set(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 180 throws SnmpStatusException { 181 if (req.getSize() == 0) return; 182 183 JvmMemManagerEntryMBean entry = (JvmMemManagerEntryMBean) getEntry(rowOid); 184 synchronized (this) { 185 node.setInstance(entry); 186 node.set(req,depth); 187 } 188 } 189 190 // ------------------------------------------------------------ 191 // 192 // Implements the "check" method defined in "SnmpMibTable". 193 // See the "SnmpMibTable" Javadoc API for more details. 194 // 195 // ------------------------------------------------------------ 196 197 public void check(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 198 throws SnmpStatusException { 199 if (req.getSize() == 0) return; 200 201 JvmMemManagerEntryMBean entry = (JvmMemManagerEntryMBean) getEntry(rowOid); 202 synchronized (this) { 203 node.setInstance(entry); 204 node.check(req,depth); 205 } 206 } 207 208 /** 209 * check that the given "var" identifies a columnar object. 210 */ 211 public void validateVarEntryId( SnmpOid rowOid, long var, Object data ) 212 throws SnmpStatusException { 213 node.validateVarId(var, data); 214 } 215 216 /** 217 * Returns true if "var" identifies a readable scalar object. 218 */ 219 public boolean isReadableEntryId( SnmpOid rowOid, long var, Object data ) 220 throws SnmpStatusException { 221 return node.isReadable(var); 222 } 223 224 /** 225 * Returns the arc of the next columnar object following "var". 226 */ 227 public long getNextVarEntryId( SnmpOid rowOid, long var, Object data ) 228 throws SnmpStatusException { 229 long nextvar = node.getNextVarId(var, data); 230 while (!isReadableEntryId(rowOid, nextvar, data)) 231 nextvar = node.getNextVarId(nextvar, data); 232 return nextvar; 233 } 234 235 // ------------------------------------------------------------ 236 // 237 // Implements the "skipEntryVariable" method defined in "SnmpMibTable". 238 // See the "SnmpMibTable" Javadoc API for more details. 239 // 240 // ------------------------------------------------------------ 241 242 public boolean skipEntryVariable( SnmpOid rowOid, long var, Object data, int pduVersion) { 243 try { 244 JvmMemManagerEntryMBean entry = (JvmMemManagerEntryMBean) getEntry(rowOid); 245 synchronized (this) { 246 node.setInstance(entry); 247 return node.skipVariable(var, data, pduVersion); 248 } 249 } catch (SnmpStatusException x) { 250 return false; 251 } 252 } 253 254 255 /** 256 * Reference to the entry metadata. 257 */ 258 private JvmMemManagerEntryMeta node; 259 260 /** 261 * Reference to the object server. 262 */ 263 protected SnmpStandardObjectServer objectserver; 264 265 }