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 "JvmMemPoolTable" group. 67 * The group is defined with the following oid: 1.3.6.1.4.1.42.2.145.3.163.1.1.2.110. 68 */ 69 public class JvmMemPoolTableMeta extends SnmpMibTable implements Serializable { 70 71 static final long serialVersionUID = -2799470815264898659L; 72 73 /** 74 * Constructor for the table. Initialize metadata for "JvmMemPoolTableMeta". 75 * The reference on the MBean server is updated so the entries created through an SNMP SET will be AUTOMATICALLY REGISTERED in Java DMK. 76 */ 77 public JvmMemPoolTableMeta(SnmpMib myMib, SnmpStandardObjectServer objserv) { 78 super(myMib); 79 objectserver = objserv; 80 } 81 82 83 /** 84 * Factory method for "JvmMemPoolEntry" entry metadata class. 85 * 86 * You can redefine this method if you need to replace the default 87 * generated metadata class with your own customized class. 88 * 89 * @param snmpEntryName Name of the SNMP Entry object (conceptual row) ("JvmMemPoolEntry") 90 * @param tableName Name of the table in which the entries are registered ("JvmMemPoolTable") 91 * @param mib The SnmpMib object in which this table is registered 92 * @param server MBeanServer for this table entries (may be null) 93 * 94 * @return An instance of the metadata class generated for the 95 * "JvmMemPoolEntry" conceptual row (JvmMemPoolEntryMeta) 96 * 97 **/ 98 protected JvmMemPoolEntryMeta createJvmMemPoolEntryMetaNode(String snmpEntryName, String tableName, SnmpMib mib, MBeanServer server) { 99 return new JvmMemPoolEntryMeta(mib, objectserver); 100 } 101 102 103 // ------------------------------------------------------------ 104 // 105 // Implements the "createNewEntry" method defined in "SnmpMibTable". 106 // See the "SnmpMibTable" Javadoc API for more details. 107 // 108 // ------------------------------------------------------------ 109 110 public void createNewEntry(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 111 throws SnmpStatusException { 112 if (factory != null) 113 factory.createNewEntry(req, rowOid, depth, this); 114 else 115 throw new SnmpStatusException( 116 SnmpStatusException.snmpRspNoAccess); 117 } 118 119 120 121 // ------------------------------------------------------------ 122 // 123 // Implements the "isRegistrationRequired" method defined in "SnmpMibTable". 124 // See the "SnmpMibTable" Javadoc API for more details. 125 // 126 // ------------------------------------------------------------ 127 128 public boolean isRegistrationRequired() { 129 return false; 130 } 131 132 133 134 public void registerEntryNode(SnmpMib mib, MBeanServer server) { 135 node = createJvmMemPoolEntryMetaNode("JvmMemPoolEntry", "JvmMemPoolTable", mib, server); 136 } 137 138 139 // ------------------------------------------------------------ 140 // 141 // Implements the "addEntry" method defined in "SnmpMibTable". 142 // See the "SnmpMibTable" Javadoc API for more details. 143 // 144 // ------------------------------------------------------------ 145 146 public synchronized void addEntry(SnmpOid rowOid, ObjectName objname, 147 Object entry) 148 throws SnmpStatusException { 149 if (! (entry instanceof JvmMemPoolEntryMBean) ) 150 throw new ClassCastException("Entries for Table \"" + 151 "JvmMemPoolTable" + "\" must implement the \"" + 152 "JvmMemPoolEntryMBean" + "\" interface."); 153 super.addEntry(rowOid, objname, entry); 154 } 155 156 157 // ------------------------------------------------------------ 158 // 159 // Implements the "get" method defined in "SnmpMibTable". 160 // See the "SnmpMibTable" Javadoc API for more details. 161 // 162 // ------------------------------------------------------------ 163 164 public void get(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 165 throws SnmpStatusException { 166 JvmMemPoolEntryMBean entry = (JvmMemPoolEntryMBean) getEntry(rowOid); 167 synchronized (this) { 168 node.setInstance(entry); 169 node.get(req,depth); 170 } 171 } 172 173 // ------------------------------------------------------------ 174 // 175 // Implements the "set" method defined in "SnmpMibTable". 176 // See the "SnmpMibTable" Javadoc API for more details. 177 // 178 // ------------------------------------------------------------ 179 180 public void set(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 181 throws SnmpStatusException { 182 if (req.getSize() == 0) return; 183 184 JvmMemPoolEntryMBean entry = (JvmMemPoolEntryMBean) getEntry(rowOid); 185 synchronized (this) { 186 node.setInstance(entry); 187 node.set(req,depth); 188 } 189 } 190 191 // ------------------------------------------------------------ 192 // 193 // Implements the "check" method defined in "SnmpMibTable". 194 // See the "SnmpMibTable" Javadoc API for more details. 195 // 196 // ------------------------------------------------------------ 197 198 public void check(SnmpMibSubRequest req, SnmpOid rowOid, int depth) 199 throws SnmpStatusException { 200 if (req.getSize() == 0) return; 201 202 JvmMemPoolEntryMBean entry = (JvmMemPoolEntryMBean) getEntry(rowOid); 203 synchronized (this) { 204 node.setInstance(entry); 205 node.check(req,depth); 206 } 207 } 208 209 /** 210 * check that the given "var" identifies a columnar object. 211 */ 212 public void validateVarEntryId( SnmpOid rowOid, long var, Object data ) 213 throws SnmpStatusException { 214 node.validateVarId(var, data); 215 } 216 217 /** 218 * Returns true if "var" identifies a readable scalar object. 219 */ 220 public boolean isReadableEntryId( SnmpOid rowOid, long var, Object data ) 221 throws SnmpStatusException { 222 return node.isReadable(var); 223 } 224 225 /** 226 * Returns the arc of the next columnar object following "var". 227 */ 228 public long getNextVarEntryId( SnmpOid rowOid, long var, Object data ) 229 throws SnmpStatusException { 230 long nextvar = node.getNextVarId(var, data); 231 while (!isReadableEntryId(rowOid, nextvar, data)) 232 nextvar = node.getNextVarId(nextvar, data); 233 return nextvar; 234 } 235 236 // ------------------------------------------------------------ 237 // 238 // Implements the "skipEntryVariable" method defined in "SnmpMibTable". 239 // See the "SnmpMibTable" Javadoc API for more details. 240 // 241 // ------------------------------------------------------------ 242 243 public boolean skipEntryVariable( SnmpOid rowOid, long var, Object data, int pduVersion) { 244 try { 245 JvmMemPoolEntryMBean entry = (JvmMemPoolEntryMBean) getEntry(rowOid); 246 synchronized (this) { 247 node.setInstance(entry); 248 return node.skipVariable(var, data, pduVersion); 249 } 250 } catch (SnmpStatusException x) { 251 return false; 252 } 253 } 254 255 256 /** 257 * Reference to the entry metadata. 258 */ 259 private JvmMemPoolEntryMeta node; 260 261 /** 262 * Reference to the object server. 263 */ 264 protected SnmpStandardObjectServer objectserver; 265 266 }