diff -r 957656314d82 -r d9f500808d8a jdk/src/jdk.snmp/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java --- a/jdk/src/jdk.snmp/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java Mon Oct 27 17:54:00 2014 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,521 +0,0 @@ -/* - * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.jmx.snmp.agent; - -// java imports -// -import java.io.Serializable; -import java.util.Hashtable; -import java.util.Vector; - -// jmx imports -// -import com.sun.jmx.snmp.SnmpVarBind; -import com.sun.jmx.snmp.SnmpStatusException; - - -/** - * 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. - *
- * This class is used by the class generated by mibgen
.
- * You should not need to use this class directly.
- *
- *
This API is a Sun Microsystems internal API and is subject - * to change without notice.
- */ -@SuppressWarnings("serial") // JDK implementation class -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 Hashtabletrue
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 true
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 true
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 SnmpMibTable
identified by `arc', or
- * null
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 new SnmpStatusException(SnmpStatusException.noSuchObject);
- }
- }
-
-
- // -------------------------------------------------------------------
- // 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 preferred 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 true
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(arc);
- // if the arc is registered in the hashtable,
- // it leads to a subgroup.
- return (obj != null);
- }
-
- /**
- * Generic handling of the get
operation.
- * 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: - *
Both implementations rely upon specific - and distinct, set of - * mibgen generated methods. - *
You can override this method if you need to implement some - * specific policies for minimizing the accesses made to some remote - * underlying resources. - *
- *
- * @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.
- */
- @Override
- abstract public void get(SnmpMibSubRequest req, int depth)
- throws SnmpStatusException;
-
- /**
- * Generic handling of the set
operation.
- *
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: - *
Both implementations rely upon specific - and distinct, set of - * mibgen generated methods. - *
You can override this method if you need to implement some - * specific policies for minimizing the accesses made to some remote - * underlying resources. - *
- *
- * @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.
- */
- @Override
- abstract public void set(SnmpMibSubRequest req, int depth)
- throws SnmpStatusException;
-
- /**
- * Generic handling of the check
operation.
- *
- *
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: - *
Both implementations rely upon specific - and distinct, set of - * mibgen generated methods. - *
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. - *
- *
- * @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.
- */
- @Override
- 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.
- // --------------------------------------------------------------------
- @Override
- public void getRootOid(Vector