Altova UModel 2024 Enterprise Edition

Das UModel-Installationspaket enthält ein Java-Beispielprojekt, das Sie unter dem folgenden Pfad finden: C:\Benutzer\<Benutzername>\Dokumente\Altova\UModel2024\UModelExamples\API. Dieser Ordner enthält Java-Beispiele für die UModel API. Sie können das Beispielprojekt mit Hilfe der Batch-Datei BuildAndRun.bat, direkt über die Befehlszeile testen oder Sie können es in Eclipse kompilieren und ausführen. Anleitungen dazu finden Sie weiter unten.

 

Der Ordner für die Java-Beispiele enthält alle zum Ausführen des Beispielprojekts erforderlichen Dateien. Diese Dateien sind unten aufgelistet:

 

AltovaAutomation.dll

Java-COM Bridge: DLL-Teil

AltovaAutomation.jar

Java-COM Bridge: Java-Bibliotheksteil

UModelAPI.jar

Java-Klassen der UModel API

RunUModel.java

Java-Beispielquellcode

BuildAndRun.bat

Batch-Datei zum Kompilieren und Ausführen des Beispielcodes über die Befehlszeile. Es wird ein Ordner benötigt, in dem sich die Java Virtual Machine als Parameter befindet.

.classpath

Hilfedatei Eclipse-Projekt

.project        

Eclipse-Projektdatei

UModelAPI_JavaDoc.zip

Javadoc Datei, die die Hilfedokumentation für die Java API enthält

Readme.txt

Diese Datei

 

In diesem Beispielprojekt wird UModel gestartet und einige Operationen wie das Öffnen und Schließen von Dokumenten werden ausgeführt. UModel bleibt danach geöffnet. Sie müssen die Applikation manuell schließen.

 

Ausführen des Beispiels über die Befehlszeile

Um das Beispiel von der Befehlszeile aus auszuführen, öffnen Sie ein Eingabeaufforderungsfester, gehen Sie zum Ordner Java des Ordners API Examples (Pfad siehe oben) und geben Sie folgende Zeile ein:

 

 buildAndRun.bat "<Path-to-the-Java-bin-folder>"

 

Der Java Binary-Ordner muss von einer JDK 1.7 oder höheren Version auf Ihrem Rechner sein.

 

Drücken Sie die Eingabetaste. Der Java-Quellcode in RunUModel.java wird kompiliert und anschließend ausgeführt.

 

Laden des Beispiels in Eclipse

Öffnen Sie Eclipse und wählen Sie den Befehl File | Import... | General | Existing Projects into Workspace um die Eclipse-Projektdatei (.project) im Ordner Java des Ordners API Examples (Pfad siehe oben) zu Eclipse hinzuzufügen. Daraufhin wird das Projekt RunUModel in Ihrem Package Explorer oder Navigator angezeigt.

 

Wählen Sie das Projekt aus und klicken Sie anschließend auf Run as | Java Application, um das Beispiel auszuführen.

 

Anmerkung:Sie können einen Klassennamen oder eine Methode der Java API auswählen und F1 drücken, um Hilfe zu dieser Klasse oder Methode zu erhalten.

 

Mögliche Probleme mit instanceof- und cast-Operatoren

Es kann zu Problemen mit instanceof- und cast-Operatoren kommen. So funktionieren etwa die instanceof- und cast-Operatoren nicht, wenn Sie Instanzen eines Basisklassentyps erhalten (z.B. UMLElement.getOwnedElements()). Beachten Sie dabei die folgenden Empfehlungen:

 

Der instanceof-Operator und Klassen-Casts sollten nicht verwendet werden, wenn Sie Instanzen von Basisklassen direkt über die API erhalten.

Verwenden Sie stattdessen eine Member-Funktion, um den Typ des Elements zu ermitteln. Erstellen Sie anschließend eine neue Instanz der abgeleiteten Klasse.

 

In nachstehenden Auszug aus dem Codefragment aus RunUModel.java sehen Sie, wie Sie potenzielle Probleme mit den instanceof und cast-Operatoren behandeln können:

 

private static void printUMLTree(UMLData i_data, String tab) throws AutomationException

 {

         // Java's 'instanceof' operator does not work where we receive instances of a base class type like with 'UMLElement.getOwnedElements()'.

         if (i_data.isKindOf("Package"))

         {

                 // the Java cast operator does not work for these objects either. Instead, create a new instance with the appropriate class type.

                 UMLPackage umlPackage = new UMLPackage(i_data);  // (UMLPackage)i_data

                 

                 if (umlPackage.getIsShared())

                         System.out.println(tab + "Shared Package " + umlPackage.getName());

                 else

                         System.out.println(tab + "Package " + umlPackage.getName());

         }

         else if (i_data.isKindOf("Class"))

         {

                 System.out.println(tab + "Class " + new UMLClass(i_data).getName());

         }

 

         // recurse

         tab += "    ";

         if (i_data.isKindOf("Element"))

                 for (UMLData elem : new UMLElement(i_data).getOwnedElements())

                         printUMLTree(elem, tab);

 }

 

© 2018-2024 Altova GmbH