com.sun.management.snmp.agent
Class SnmpStandardObjectServer

java.lang.Object
  extended by com.sun.management.snmp.agent.SnmpStandardObjectServer
All Implemented Interfaces:
Serializable

public class SnmpStandardObjectServer
extends Object
implements Serializable

This class is a utility class that transform SNMP GET / SET requests into series of getAttributeName() setAttributeName() invoked on the MBean.

The transformation relies on the metadata information provided by the SnmpStandardMetaServer object which is passed as first parameter to every method. This SnmpStandardMetaServer object is usually a Metadata object generated by mibgen.

The MBean is not invoked directly by this class but through the metadata object which holds a reference on it.

This class is used internally by mibgen generated metadata objects and you should never need to use it directly.

Since:
Java DMK 5.1
See Also:
Serialized Form

Constructor Summary
SnmpStandardObjectServer()
           
 
Method Summary
 void check(SnmpStandardMetaServer meta, SnmpMibSubRequest req, int depth)
          Generic handling of the check operation.
 void get(SnmpStandardMetaServer meta, SnmpMibSubRequest req, int depth)
          Generic handling of the get operation.
 void set(SnmpStandardMetaServer meta, SnmpMibSubRequest req, int depth)
          Generic handling of the set operation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SnmpStandardObjectServer

public SnmpStandardObjectServer()
Method Detail

get

public void get(SnmpStandardMetaServer meta,
                SnmpMibSubRequest req,
                int depth)
         throws SnmpStatusException
Generic handling of the get operation.

The default implementation of this method is to loop over the varbind list associated with the sub-request and to call get(var.oid.getOidArc(depth), data);

 public void get(SnmpStandardMetaServer meta, SnmpMibSubRequest req, 
                 int depth)
          throws SnmpStatusException {

    final Object data = req.getUserData();

    for (Enumeration e= req.getElements(); e.hasMoreElements();) {

        final SnmpVarBind var= (SnmpVarBind) e.nextElement(); 

        try {
            // This method will generate a SnmpStatusException
            // if `depth' is out of bounds.
            //
            final long id = var.oid.getOidArc(depth);
            var.value = meta.get(id, data);
        } catch(SnmpStatusException x) {
            req.registerGetException(var,x);
        }
    }
 }
 

You can override this method if you need to implement some specific policies for minimizing the accesses made to some remote underlying resources.

Parameters:
meta - A pointer to the generated meta-data object which implements the SnmpStandardMetaServer interface.
req - The sub-request that must be handled by this node.
depth - The depth reached in the OID tree.
Throws:
SnmpStatusException - An error occurred while accessing the MIB node.

set

public void set(SnmpStandardMetaServer meta,
                SnmpMibSubRequest req,
                int depth)
         throws SnmpStatusException
Generic handling of the set operation.

The default implementation of this method is to loop over the varbind list associated with the sub-request and to call set(var.value, var.oid.getOidArc(depth), data);

 public void set(SnmpStandardMetaServer meta, SnmpMibSubRequest req, 
                 int depth)
          throws SnmpStatusException {

    final Object data = req.getUserData();

    for (Enumeration e= req.getElements(); e.hasMoreElements();) {

        final SnmpVarBind var= (SnmpVarBind) e.nextElement(); 

        try {
            // This method will generate a SnmpStatusException
            // if `depth' is out of bounds.
            //
            final long id = var.oid.getOidArc(depth);
            var.value = meta.set(var.value, id, data);
        } catch(SnmpStatusException x) {
            req.registerSetException(var,x);
        }
    }
 }
 

You can override this method if you need to implement some specific policies for minimizing the accesses made to some remote underlying resources.

Parameters:
meta - A pointer to the generated meta-data object which implements the SnmpStandardMetaServer interface.
req - The sub-request that must be handled by this node.
depth - The depth reached in the OID tree.
Throws:
SnmpStatusException - An error occurred while accessing the MIB node.

check

public void check(SnmpStandardMetaServer meta,
                  SnmpMibSubRequest req,
                  int depth)
           throws SnmpStatusException
Generic handling of the check operation.

The default implementation of this method is to loop over the varbind list associated with the sub-request and to call check(var.value, var.oid.getOidArc(depth), data);

 public void check(SnmpStandardMetaServer meta, SnmpMibSubRequest req, 
                   int depth)
          throws SnmpStatusException {

    final Object data = req.getUserData();

    for (Enumeration e= req.getElements(); e.hasMoreElements();) {

        final SnmpVarBind var= (SnmpVarBind) e.nextElement(); 

        try {
            // This method will generate a SnmpStatusException
            // if `depth' is out of bounds.
            //
            final long id = var.oid.getOidArc(depth);
            meta.check(var.value, id, data);
        } catch(SnmpStatusException x) {
            req.registerCheckException(var,x);
        }
    }
 }
 

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.

Parameters:
meta - A pointer to the generated meta-data object which implements the SnmpStandardMetaServer interface.
req - The sub-request that must be handled by this node.
depth - The depth reached in the OID tree.
Throws:
SnmpStatusException - An error occurred while accessing the MIB node.

Open Source build 02
opendmk-1.0-b02 2007.10.01_19:17:46_MEST

Copyright 1998-2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.