⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snmpmibgroup.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*  * @(#)file      SnmpMibGroup.java  * @(#)author    Sun Microsystems, Inc.  * @(#)version   1.25  * @(#)date      08/09/12  *  * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.sun.jmx.snmp.agent;// java imports// import java.io.Serializable;import java.util.Hashtable;import java.util.Enumeration;import java.util.Vector;// jmx imports//import com.sun.jmx.snmp.SnmpOid;import com.sun.jmx.snmp.SnmpValue;import com.sun.jmx.snmp.SnmpVarBind;import com.sun.jmx.snmp.SnmpStatusException;// SNMP Runtime imports//import com.sun.jmx.snmp.agent.SnmpMibOid;import com.sun.jmx.snmp.agent.SnmpMibNode;/** * Represents a node in an SNMP MIB which corresponds to a group. * This class allows subnodes to be registered below a group, providing * support for nested groups. The subnodes are registered at run time * when registering the nested groups in the global MIB OID tree. * <P> * This class is used by the class generated by <CODE>mibgen</CODE>. * You should not need to use this class directly. * * <p><b>This API is a Sun Microsystems internal API  and is subject  * to change without notice.</b></p> * @version     4.3     10/29/99 * @author      Sun Microsystems, Inc */public abstract class SnmpMibGroup extends SnmpMibOid     implements Serializable {    // We will register the OID arcs leading to subgroups in this hashtable.    // So for each arc in varList, if the arc is also in subgroups, it leads    // to a subgroup, if it is not in subgroup, it leads either to a table    // or to a variable.    protected Hashtable subgroups = null;    /**     * Tells whether the given arc identifies a table in this group.     *     * @param arc An OID arc.     *     * @return <CODE>true</CODE> if `arc' leads to a table.     */    public abstract boolean      isTable(long arc);    /**     * Tells whether the given arc identifies a variable (scalar object) in      * this group.     *     * @param arc An OID arc.     *     * @return <CODE>true</CODE> if `arc' leads to a variable.     */    public abstract boolean      isVariable(long arc);    /**     * Tells whether the given arc identifies a readable scalar object in      * this group.     *     * @param arc An OID arc.     *     * @return <CODE>true</CODE> if `arc' leads to a readable variable.     */    public abstract boolean      isReadable(long arc);    /**     * Gets the table identified by the given `arc'.     *     * @param arc An OID arc.     *     * @return The <CODE>SnmpMibTable</CODE> identified by `arc', or      *    <CODE>null</CODE> if `arc' does not identify any table.     */    public abstract SnmpMibTable getTable(long arc);    /**     * Checks whether the given OID arc identifies a variable (scalar      * object).     *     * @exception If the given `arc' does not identify any variable in this     *    group, throws an SnmpStatusException.     */    public void validateVarId(long arc, Object userData) 	throws SnmpStatusException {	if (isVariable(arc) == false) 	    throw noSuchObjectException;    }		    // -------------------------------------------------------------------    // We use a hashtable (subgroup) in order to determine whether an    // OID arc leads to a subgroup. This implementation can be changed if     // needed...    // For instance, the subclass could provide a generated isNestedArc()     // method in which the subgroup OID arcs would be hardcoded.    // However, the generic approach was prefered because at this time    // groups and subgroups are dynamically registered in the MIB.    //    /**     * Tell whether the given OID arc identifies a sub-tree     * leading to a nested SNMP sub-group. This method is used internally.     * You shouldn't need to call it directly.     *     * @param arc An OID arc.     *     * @return <CODE>true</CODE> if the given OID arc identifies a subtree     * leading to a nested SNMP sub-group.     *     */    public boolean isNestedArc(long arc) {	if (subgroups == null) return false;	Object obj = subgroups.get(new Long(arc));        // if the arc is registered in the hashtable, 	// it leads to a subgroup.	return (obj != null);    }    /**     * Generic handling of the <CODE>get</CODE> operation.     * <p>The actual implementation of this method will be generated     * by mibgen. Usually, this implementation only delegates the     * job to some other provided runtime class, which knows how to     * access the MBean. The current toolkit thus provides two      * implementations:     * <ul><li>The standard implementation will directly access the     *         MBean through a java reference,</li>     *     <li>The generic implementation will access the MBean through     *         the MBean server.</li>     * </ul>     * <p>Both implementations rely upon specific - and distinct, set of     * mibgen generated methods.     * <p> You can override this method if you need to implement some     * specific policies for minimizing the accesses made to some remote     * underlying resources.     * <p>     *     * @param req   The sub-request that must be handled by this node.     *     * @param depth The depth reached in the OID tree.     *     * @exception SnmpStatusException An error occurred while accessing      *  the MIB node.     */    abstract public void get(SnmpMibSubRequest req, int depth) 	throws SnmpStatusException;    /**     * Generic handling of the <CODE>set</CODE> operation.     * <p>The actual implementation of this method will be generated     * by mibgen. Usually, this implementation only delegates the     * job to some other provided runtime class, which knows how to     * access the MBean. The current toolkit thus provides two      * implementations:     * <ul><li>The standard implementation will directly access the     *         MBean through a java reference,</li>     *     <li>The generic implementation will access the MBean through     *         the MBean server.</li>     * </ul>     * <p>Both implementations rely upon specific - and distinct, set of     * mibgen generated methods.     * <p> You can override this method if you need to implement some     * specific policies for minimizing the accesses made to some remote     * underlying resources.     * <p>     *     * @param req   The sub-request that must be handled by this node.     *     * @param depth The depth reached in the OID tree.     *     * @exception SnmpStatusException An error occurred while accessing      *  the MIB node.     */    abstract public void set(SnmpMibSubRequest req, int depth) 	throws SnmpStatusException;    /**     * Generic handling of the <CODE>check</CODE> operation.     *     * <p>The actual implementation of this method will be generated     * by mibgen. Usually, this implementation only delegates the     * job to some other provided runtime class, which knows how to     * access the MBean. The current toolkit thus provides two      * implementations:     * <ul><li>The standard implementation will directly access the     *         MBean through a java reference,</li>     *     <li>The generic implementation will access the MBean through     *         the MBean server.</li>     * </ul>     * <p>Both implementations rely upon specific - and distinct, set of     * mibgen generated methods.     * <p> You can override this method if you need to implement some     * specific policies for minimizing the accesses made to some remote     * underlying resources, or if you need to implement some consistency     * checks between the different values provided in the varbind list.     * <p>     *     * @param req   The sub-request that must be handled by this node.     *     * @param depth The depth reached in the OID tree.     *     * @exception SnmpStatusException An error occurred while accessing      *  the MIB node.     */    abstract public void check(SnmpMibSubRequest req, int depth) 	throws SnmpStatusException;    // --------------------------------------------------------------------    // If we reach this node, we are below the root OID, so we just    // return.    // --------------------------------------------------------------------    public void getRootOid(Vector result) {	return;    }    // -------------------------------------------------------------------    // PACKAGE METHODS    // -------------------------------------------------------------------        // -------------------------------------------------------------------    // This method can also be overriden in a subclass to provide a     // different implementation of the isNestedArc() method.    // => if isNestedArc() is hardcoded, then registerSubArc() becomes    //    useless and can become empty.    /**     * Register an OID arc that identifies a sub-tree     * leading to a nested SNMP sub-group. This method is used internally.     * You shouldn't ever call it directly.     *     * @param arc An OID arc.     *     */    void registerNestedArc(long arc) {	Long obj = new Long(arc);	if (subgroups == null) subgroups = new Hashtable();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -