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.
addEntryremoveEntry