Java-Beispielprojekt

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Die MapForce API > Übersicht > Beispiele >

Java-Beispielprojekt

Nach Installation von MapForce steht ein MapForce API Client-Projekt für Java im folgenden Verzeichnis zur Verfügung: C:/Benutzer/<Benutzername>/Dokumente/Altova/MapForce2019/MapForceExamples/API.

 

Sie können das Java-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 dafür finden Sie weiter unten.

 

Dateiliste

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

XMLSpyAPI.jar

Java-Klassen der MapForce API

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

MapForceAPI_JavaDoc.zip

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

 

Funktionen in diesem Beispiel

In diesem Beispielprojekt wird MapForce gestartet und einige Operationen wie das Öffnen und Schließen von Dokumenten werden ausgeführt. MapForce 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.5 oder höheren Version auf Ihrem Rechner sein.

 

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

 

Laden des Beispiels in Eclipse

Öffnen Sie Eclipse und wählen Sie den Befehl Import | 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 RunMapForce 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.

 

Java-Quellcode

Im Folgenden finden Sie den mit Kommentaren versehenen Java-Quellcode aus der Beispieldatei RunMapForce.java.

 

// access general JAVA-COM bridge classes
import java.util.Iterator;
 
import com.altova.automation.libs.*;
 
// access XMLSpy Java-COM bridge
import com.altova.automation.MapForce.*;
import com.altova.automation.MapForce.Enums.ENUMProgrammingLanguage;
 
/**
* A simple example that starts XMLSpy COM server and performs a few operations on it.
* Feel free to extend.
*/
public class RunMapForce
{
  public static void main(String[] args)
  {
    // an instance of the application.
    Application mapforce = null;
 
    // instead of COM error handling use Java exception mechanism.
    try
    {
        // Start MapForce as COM server.
        mapforce = new Application();
        // COM servers start up invisible so we make it visible
        mapforce.setVisible(true);
       
        // The following lines attach to the application events using a default implementation
        // for the events and override one of its methods.
        // If you want to override all document events it is better to derive your listener class
        // from DocumentEvents and implement all methods of this interface.
        mapforce.addListener(new ApplicationEventsDefaultHandler()
        {
          @Override
          public void onDocumentOpened(Document i_ipDoc) throws AutomationException
          {
              String name = i_ipDoc.getName();
             
              if (name.length() > 0)
                System.out.println("Document " + name + " was opened.");
              else
                System.out.println("A new mapping was created.");
          }
        });
 
        // Locate samples installed with the product.
        int majorVersionYear = mapforce.getMajorVersion() + 1998;
        String strExamplesFolder = System.getenv("USERPROFILE") + "\\Documents\\Altova\\MapForce" + Integer.toString(majorVersionYear) + "\\MapForceExamples\\";
        // create a new MapForce mapping and generate c++ code
        Document newDoc = mapforce.newMapping();
        ErrorMarkers err1 = newDoc.generateCodeEx(ENUMProgrammingLanguage.eCpp);
        display(err1);
        // open CompletePO.mfd and generate c++ code
        Document doc = mapforce.openDocument(strExamplesFolder + "CompletePO.mfd");
        ErrorMarkers err2 = doc.generateCodeEx(ENUMProgrammingLanguage.eCpp);
        display(err2);
       
        doc.close();
        doc = null;
         
        System.out.println("Watch MapForce!");
    }
    catch (AutomationException e)
    {
        // e.printStackTrace();
    }
    finally
    {
        // Make sure that MapForce can shut down properly.
        if (mapforce != null)
          mapforce.dispose();
 
        // Since the COM server was made visible and still is visible, it will keep running
        // and needs to be closed manually.
        System.out.println("Now close MapForce!");
    }
  }
 
  public static void display(ErrorMarkers err) throws AutomationException
  {
    Iterator<ErrorMarker> itr = err.iterator();
         
    if (err.getCount() == 0)
        System.out.print("Code generation completed successfully.\n");
   
    while (itr.hasNext())
    {
        String sError = "";
        Object element = itr.next();
        if (element instanceof ErrorMarker)
            sError = ((ErrorMarker)element).getText();
        System.out.print("Error text: " + sError + "\n");
    }
  }
}


© 2019 Altova GmbH