next up previous contents
Next: 4.1.3 Schritt 3: Das Up: 4.1 Umwandlung von MOF Previous: 4.1.1 Schritt 1: Das

4.1.2 Schritt 2: Das Skript pass2.pl

Aufgabe dieses Skriptes ist das Erzeugen einer Datei, die Java Syntax besitzt und der Vererbungshierarchie der JMAPI Base Managed Object Classes genügt.

Aus jeder CIM-Klasse CIM_SomeClass, die ein Managed Object beschreibt, wird in JMAPI ein MO mit Remote Interface CIM_SomeClass und zugehöriger Implementierung CIM_SomeClassImpl.

Wurzel der JMAPI-MO-Klassenhierarchie bildet die Klasse ManagedObjectImpl mit Remote Interface ManagedObject. CIM-Klassen, die innerhalb von CIM keine Oberklassen besitzen, werden auf MOs abgebildet, die direkt von ManagedObjectImpl erben. Beispielsweise wird das aus CIM_ManagedSystemElement zu generierende JMAPI MO CIM_ManagedSystemElementImpl als Unterklasse von ManagedObjectImpl deklariert und erbt damit die Methoden für den JMAPI Transaktionsmechanismus, den Security Context und die Verwaltung von Associations.

Die restliche Vererbungshierarchie wird einfach auf JMAPI isomorph übertragen.

Enthält beispielsweise die Ausgabedatei des Skripts pass1.pl eine Zeile der Form

abstract class CIM_PhysicalElement:CIM_ManagedSystemElement

so muß diese transformiert werden in die Zeile

public abstract class CIM_PhysicalElementImpl 
    extends CIM_ManagedSystemElementImpl 
    implements CIM_PhysicalElement

Neben dem Aufbau einer Klassenhierarchie hat das Skript pass2.pl auch die Aufgabe, die CIM Datentypen auf entsprechende JMAPI Datentypen abzubilden.

Die Konvertierung der Datentypen ist in Tabelle 4.1 zusammengestellt. Da es in Java keine unsigned Datentypen gibt, ist es erforderlich, im Falle der Datentypen uint8, uint16 und uint32 jeweils auf den nächstgenaueren signed-Datentyp abzubilden. Eine Abbildung von uint32 ist ferner nur unter Verwendung der Klasse java.math.BigInteger möglich.


 
Tabelle 4.1: Abbildung der Datentypen von MOF nach Java
MOF Java
bool boolean
string String
uint8 short
sint8 byte
uint16 int
sint16 short
uint32 long
sint32 int
uint64 java.math.BigInteger
sint64 long
real32 float
real64 double
char16 char
datetime String
 


next up previous contents
Next: 4.1.3 Schritt 3: Das Up: 4.1 Umwandlung von MOF Previous: 4.1.1 Schritt 1: Das
Copyright Munich Network Management Team