Einführung in ExternalType-Abschnitte

ExternalType-Abschnitte ordnen externe Sprachelemente zu EGL zu.

Diese Zuordnung ist der Zuordnung ähnlich, die eine Schnittstelle für Servicefunktionen bietet. Die Zuordnung zwischen EGL und externen Sprachenelementen ist jedoch generalisiert, um Felder und Konstruktoren einzuschließen. Das einzige externe Element, das vom ExternalType-Abschnitt unterstützt wird, ist das Java™-Objekt.

Ein ExternalType-Abschnitt besteht aus den folgenden Komponenten:
Variablendeklarationen
Diese Komponenten ermöglichen den Zugriff auf öffentliche Variablen im externen Sprachelement.
Funktionsprototypen
Diese Komponenten stellen Methodenaufrufe oder Funktionsaufrufe im externen Typ dar.
Konstruktorprototypen
Diese Komponenten definieren die Syntax für die Erstellung einer Variablen dieses externen Typs unter Verwendung einer EGL-Anweisung new.

Das Konzept des ExternalType-Abschnitts ist mit dem Konzept einer Bibliothek oder eines Service vergleichbar. In allen diesen Fällen wird im Programm externe Funktionalität verwendet. Im Fall eines Service oder eines ExternalType-Abschnitts, bei dem EGL keinen direkten Zugriff auf den Code besitzt, müssen Sie bestimmte Prototypen bereitstellen, damit EGL die erforderliche Typüberprüfung ausführen kann.

Eine ExternalType-Definition reserviert keinen Speicher. Sie müssen eine Variable deklarieren, die auf dem Abschnitt basiert (optional unter Verwendung der EGL-Anweisung new), damit ihre Variablen und Funktionen verwendet werden können (sofern diese nicht als static deklariert sind; siehe 'Syntax' im vorliegenden Abschnitt).

Eine Reihe der Konzepte, die im Zusammenhang mit dem ExternalType-Abschnitt zur Anwendung kommen, stammt aus objektorientierten Sprachen wie Java und C#. Diese Konzepte beinhalten Erweiterung, Vererbung und Konstruktoren. Falls Ihnen diese Begriffe nicht geläufig sind, informieren Sie sich mithilfe einer Java-Basisreferenz.

Eine der Hauptverwendungen für einen ExternalType-Abschnitt ist die Erstellung von Feldgruppen aus Funktionszeigern für die Ereignisverarbeitung. EGL-Textberichte verwenden ExternalType-Abschnitte auf diese Weise (siehe EGL-Textberichte).

Der ExternalType-Abschnitt kann einen von drei Stereotypen aufweisen:

ExternalType-Funktionen

Falls die Funktion mit static gekennzeichnet ist, rufen Sie sie unter Verwendung einer Syntax auf, die aus dem Namen des ExternalType-Abschnitts und einem Punkt besteht (typname.methodenname()). Andernfalls erstellen Sie eine Variable, die auf dem ExternalType-Abschnitt basiert, und hängen Sie den Variablennamen mit einer Punktsyntax an den Namen der Methode an (externaltype-variable.methodenname()). Weitere Informationen hierzu finden Sie im Beispiel.

Serialisierbarer ExternalType-Abschnitt

Falls Sie einen ExternalType-Abschnitt zu einer Java-Klasse zuordnen, die die Schnittstelle 'java.io.Serializable' implementiert, muss der ExternalType-Abschnitt den vordefinierten serialisierbaren ExternalType-Abschnitt erweitern:
ExternalType CustomDate extends Serializable type JavaObject
{
  packageName="com.mycompany", 
  javaName="CustomDate" 
}

	// functions

end

Serialisierbare ExternalType-Variablen können direkt auf Platte gespeichert und später wiederhergestellt werden, falls die zugehörige Java-Klasse die Schnittstelle 'java.io.Serializable' implementiert. ExternalType-Abschnitte, die den serialisierbaren ExternalType-Abschnitt nicht erweitern, gelten als transient und können nicht direkt auf Platte gespeichert werden. Falls Sie die Informationen in einem nicht serialisierbaren ExternalType-Abschnitt speichern wollen, müssen Sie zu diesem Zweck eine Datenquelle verwenden.

Der folgende Code zeigt den serialisierbaren ExternalType-Abschnitt:
ExternalType Serializable type JavaObject
{
  JavaName = "Serializable", 
  PackageName = "java.io"
}
end

Feedback