Der MIBGEN-Generator führt für die verschiedenen SNMP-Datentypen eine Umsetzung durch. Dabei werden drei Arten von Datentypen betrachtet:
// Auszug aus der TIS-MIB enableDnsForWindows OBJECT-TYPE SYNTAX INTEGER { checked(1), notChecked(2) } ACCESS read-write STATUS mandatory DESCRIPTION "This is the 'Enable DNS' flag as found in WinNT Control Panel-> Network->Protocols." ::= { networkParms 9 } // Umsetzung der Enumerations-Variablen /** * The class is used for representing "EnableDnsForWindows". */ public class EnumEnableDnsForWindows extends Enumerated implements Serializable { protected static Hashtable intTable= new Hashtable(); protected static Hashtable stringTable= new Hashtable() ; static { intTable.put(new Integer(1), "checked"); intTable.put(new Integer(2), "notChecked"); stringTable.put("checked", new Integer(1)); stringTable.put("notChecked", new Integer(2)); } ... public EnumEnableDnsForWindows(int valueIndex) throws IllegalArgumentException { super(valueIndex); } ... public EnumEnableDnsForWindows(String x) throws IllegalArgumentException { super(x); }
// Auszug aus TIS-MIB ... dnsServerTable OBJECT-TYPE SYNTAX SEQUENCE OF DnsServerEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "This is the list of DNS servers as found in WinNT Control Panel-> Network->Protocols." ::= { networkParms 7 } // Auszug aus Datei "TableDnsServerTable.java" ... /** * The class is used for implementing the "DeviceTable" group. * The group is defined with the following oid: 1.3.6.1.4.1.2206.5.1.2.1.1. */ public class TableDeviceTable extends SnmpMibTable implements Serializable { ... /** * Constructor for the table. Initialize metadata for "TableDeviceTable" */ public TableDeviceTable(SnmpMib myMib) { super(myMib); node= new DeviceEntryMeta(myMib); } ... public synchronized void addEntry(DeviceEntry entry) throws SnmpStatusException { SnmpIndex index= buildSnmpIndex(entry); addEntry(index, entry); } ...Wie im dem Beispiel angedeutet, werden eine Reihe von Methoden erzeugt, welche den Zugriff auf die Elemente der Tabelle ermöglichen. Die wesentlichen Methoden wären:
buildSnmpIndex
com.sun.jaw.snmp.agent
bereitgestellt und ermöglicht eine bequeme
Handhabung von SNMP-Indizes. Das Index-Objekt wird als Parameter von
buildOidFromIndex verwendet.
buildOidFromIndex
buildSnmpIndex
erstellten Tabellenindex
ein SnmpOID-Objekt erzeugt. Dieses Objekt beinhaltet die erzeugte OID sowie mehrere
Methoden, welche es ermöglichen, die OID unterschiedlich zu repräsentieren. In der
Implementierung werden diese Methoden verwendet, um eine Stringdarstellung der OID
für den Zugriff über Native-Methoden zu erstellen.
addEntry
removeEntry