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 
  36 // jmx imports
  37 //
  38 import javax.management.MBeanServer;
  39 import com.sun.jmx.snmp.SnmpCounter;
  40 import com.sun.jmx.snmp.SnmpCounter64;
  41 import com.sun.jmx.snmp.SnmpGauge;
  42 import com.sun.jmx.snmp.SnmpInt;
  43 import com.sun.jmx.snmp.SnmpUnsignedInt;
  44 import com.sun.jmx.snmp.SnmpIpAddress;
  45 import com.sun.jmx.snmp.SnmpTimeticks;
  46 import com.sun.jmx.snmp.SnmpOpaque;
  47 import com.sun.jmx.snmp.SnmpString;
  48 import com.sun.jmx.snmp.SnmpStringFixed;
  49 import com.sun.jmx.snmp.SnmpOid;
  50 import com.sun.jmx.snmp.SnmpNull;
  51 import com.sun.jmx.snmp.SnmpValue;
  52 import com.sun.jmx.snmp.SnmpVarBind;
  53 import com.sun.jmx.snmp.SnmpStatusException;
  54 
  55 // jdmk imports
  56 //
  57 import com.sun.jmx.snmp.agent.SnmpMib;
  58 import com.sun.jmx.snmp.agent.SnmpMibGroup;
  59 import com.sun.jmx.snmp.agent.SnmpStandardObjectServer;
  60 import com.sun.jmx.snmp.agent.SnmpStandardMetaServer;
  61 import com.sun.jmx.snmp.agent.SnmpMibSubRequest;
  62 import com.sun.jmx.snmp.agent.SnmpMibTable;
  63 import com.sun.jmx.snmp.EnumRowStatus;
  64 import com.sun.jmx.snmp.SnmpDefinitions;
  65 
  66 /**
  67  * The class is used for representing SNMP metadata for the "JvmOS" group.
  68  * The group is defined with the following oid: 1.3.6.1.4.1.42.2.145.3.163.1.1.6.
  69  */
  70 public class JvmOSMeta extends SnmpMibGroup
  71      implements Serializable, SnmpStandardMetaServer {
  72 
  73     static final long serialVersionUID = -2024138733580127133L;
  74 
  75     /**
  76      * Constructor for the metadata associated to "JvmOS".
  77      */
  78     public JvmOSMeta(SnmpMib myMib, SnmpStandardObjectServer objserv) {
  79         objectserver = objserv;
  80         try {
  81             registerObject(4);
  82             registerObject(3);
  83             registerObject(2);
  84             registerObject(1);
  85         } catch (IllegalAccessException e) {
  86             throw new RuntimeException(e.getMessage());
  87         }
  88     }
  89 
  90     /**
  91      * Get the value of a scalar variable
  92      */
  93     public SnmpValue get(long var, Object data)
  94         throws SnmpStatusException {
  95         switch((int)var) {
  96             case 4:
  97                 return new SnmpInt(node.getJvmOSProcessorCount());
  98 
  99             case 3:
 100                 return new SnmpString(node.getJvmOSVersion());
 101 
 102             case 2:
 103                 return new SnmpString(node.getJvmOSArch());
 104 
 105             case 1:
 106                 return new SnmpString(node.getJvmOSName());
 107 
 108             default:
 109                 break;
 110         }
 111         throw new SnmpStatusException(SnmpStatusException.noSuchObject);
 112     }
 113 
 114     /**
 115      * Set the value of a scalar variable
 116      */
 117     public SnmpValue set(SnmpValue x, long var, Object data)
 118         throws SnmpStatusException {
 119         switch((int)var) {
 120             case 4:
 121                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 122 
 123             case 3:
 124                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 125 
 126             case 2:
 127                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 128 
 129             case 1:
 130                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 131 
 132             default:
 133                 break;
 134         }
 135         throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 136     }
 137 
 138     /**
 139      * Check the value of a scalar variable
 140      */
 141     public void check(SnmpValue x, long var, Object data)
 142         throws SnmpStatusException {
 143         switch((int) var) {
 144             case 4:
 145                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 146 
 147             case 3:
 148                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 149 
 150             case 2:
 151                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 152 
 153             case 1:
 154                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 155 
 156             default:
 157                 throw new SnmpStatusException(SnmpStatusException.snmpRspNotWritable);
 158         }
 159     }
 160 
 161     /**
 162      * Allow to bind the metadata description to a specific object.
 163      */
 164     protected void setInstance(JvmOSMBean var) {
 165         node = var;
 166     }
 167 
 168 
 169     // ------------------------------------------------------------
 170     //
 171     // Implements the "get" method defined in "SnmpMibGroup".
 172     // See the "SnmpMibGroup" Javadoc API for more details.
 173     //
 174     // ------------------------------------------------------------
 175 
 176     public void get(SnmpMibSubRequest req, int depth)
 177         throws SnmpStatusException {
 178         objectserver.get(this,req,depth);
 179     }
 180 
 181 
 182     // ------------------------------------------------------------
 183     //
 184     // Implements the "set" method defined in "SnmpMibGroup".
 185     // See the "SnmpMibGroup" Javadoc API for more details.
 186     //
 187     // ------------------------------------------------------------
 188 
 189     public void set(SnmpMibSubRequest req, int depth)
 190         throws SnmpStatusException {
 191         objectserver.set(this,req,depth);
 192     }
 193 
 194 
 195     // ------------------------------------------------------------
 196     //
 197     // Implements the "check" method defined in "SnmpMibGroup".
 198     // See the "SnmpMibGroup" Javadoc API for more details.
 199     //
 200     // ------------------------------------------------------------
 201 
 202     public void check(SnmpMibSubRequest req, int depth)
 203         throws SnmpStatusException {
 204         objectserver.check(this,req,depth);
 205     }
 206 
 207     /**
 208      * Returns true if "arc" identifies a scalar object.
 209      */
 210     public boolean isVariable(long arc) {
 211 
 212         switch((int)arc) {
 213             case 4:
 214             case 3:
 215             case 2:
 216             case 1:
 217                 return true;
 218             default:
 219                 break;
 220         }
 221         return false;
 222     }
 223 
 224     /**
 225      * Returns true if "arc" identifies a readable scalar object.
 226      */
 227     public boolean isReadable(long arc) {
 228 
 229         switch((int)arc) {
 230             case 4:
 231             case 3:
 232             case 2:
 233             case 1:
 234                 return true;
 235             default:
 236                 break;
 237         }
 238         return false;
 239     }
 240 
 241 
 242     // ------------------------------------------------------------
 243     //
 244     // Implements the "skipVariable" method defined in "SnmpMibGroup".
 245     // See the "SnmpMibGroup" Javadoc API for more details.
 246     //
 247     // ------------------------------------------------------------
 248 
 249     public boolean  skipVariable(long var, Object data, int pduVersion) {
 250         return super.skipVariable(var,data,pduVersion);
 251     }
 252 
 253     /**
 254      * Return the name of the attribute corresponding to the SNMP variable identified by "id".
 255      */
 256     public String getAttributeName(long id)
 257         throws SnmpStatusException {
 258         switch((int)id) {
 259             case 4:
 260                 return "JvmOSProcessorCount";
 261 
 262             case 3:
 263                 return "JvmOSVersion";
 264 
 265             case 2:
 266                 return "JvmOSArch";
 267 
 268             case 1:
 269                 return "JvmOSName";
 270 
 271             default:
 272                 break;
 273         }
 274         throw new SnmpStatusException(SnmpStatusException.noSuchObject);
 275     }
 276 
 277     /**
 278      * Returns true if "arc" identifies a table object.
 279      */
 280     public boolean isTable(long arc) {
 281 
 282         switch((int)arc) {
 283             default:
 284                 break;
 285         }
 286         return false;
 287     }
 288 
 289     /**
 290      * Returns the table object identified by "arc".
 291      */
 292     public SnmpMibTable getTable(long arc) {
 293         return null;
 294     }
 295 
 296     /**
 297      * Register the group's SnmpMibTable objects with the meta-data.
 298      */
 299     public void registerTableNodes(SnmpMib mib, MBeanServer server) {
 300     }
 301 
 302     protected JvmOSMBean node;
 303     protected SnmpStandardObjectServer objectserver = null;
 304 }