EGL-Regeln für Abschnittsauflösung

Die Abschnittsauflösungsregeln erläutern, wie EGL nach Abschnittsnamen sucht, um Verweise in einem Programm aufzulösen. Dieser Prozess unterscheidet sich von der unter Namensauflösung in einem Ausdruck beschriebenen Suche zum Auflösen eines Namens in einem Ausdruck.

Abschnittsauflösungsregeln gelten für Folgendes:
Die Abschnittsauflösung beruht auf drei wichtigen Konzepten:
EGL_ROOT
Das EGL-Stammverzeichnis (EGL_ROOT) ist ein logischer Container, der alle mit EGL gelieferten Abschnitte enthält.
EGL-Buildpfad
Der EGL-Buildpfad steuert die Sichtbarkeit für Projekte, stellt jedoch auch eine Suchreihenfolge bereit, wenn EGL versucht, einen Abschnittsnamen aufzulösen. EGL_ROOT wird am Ende des Pfads implizit hinzugefügt. Weitere Informationen finden Sie im Thema zum EGL-Buildpfad im EGL-Handbuch für Programmierer.
Systembereich
Der Systembereich enthält eine Gruppe von EGL-Abschnitten, die aufgelöst werden können, ohne importiert oder vollständig qualifiziert werden zu müssen. Derzeit enthält der Systembereich lediglich die Abschnitte, die sich in EGL_ROOT befinden. Der Systembereich ermöglicht es Ihnen, einen Systemabschnitt zu referenzieren, wie beispielsweise den Datensatz 'sqlLib.sqlData', ohne ein Qualifikationsmerkmal oder die Anweisung 'import' zu verwenden:
mySQLDataVar sqlData;

Um einen vollständig qualifizierten Abschnittsnamen aufzulösen, durchsucht EGL jeden Eintrag im Buildpfad, um zu ermitteln, ob sich das angegebene Paket und der angegebene Abschnitt dort befinden. Der erste Abschnitt, der im EGL-Buildpfad gefunden wird, wird verwendet.

Um einen nicht qualifizierten Abschnittsnamen aufzulösen, gelten in EGL die folgenden Prioritäten in der angegebenen Reihenfolge:
Importe einzelner Abschnitte
Zunächst versucht EGL den Namen aufzulösen, indem die Importanweisungen für einzelne Abschnitte in Ihrer Quellendatei überprüft werden. Die folgende Anweisung 'import' beispielsweise löst den Namen myLibrary auf:
import com.companyb.gl.myLibrary;
Es können keine Abschnitte aus dem Standardpaket importiert werden.
Aktuelles Paket
Nach Überprüfung der Importe einzelner Abschnitte überprüft EGL den Rest Ihres aktuellen Pakets auf den Namen. Wenn beispielsweise der vorherige Schritt fehlschlägt und Sie eine Bibliothek namens myLibrary in Ihrem aktuellen Paket besitzen, verwendet EGL diese Bibliothek, um den Verweis aufzulösen.
Bedarfsgesteuerte Importe
EGL sucht nach jedem der Pakete in den bedarfsgesteuerten import-Anweisungen in allen Projekten im EGL-Buildpfad in der Reihenfolge ihres Vorkommens. Wird ein übereinstimmendes Paket gefunden, durchsucht EGL dieses Paket nach einem übereinstimmenden Abschnitt. Ist der gesuchte Abschnitt in diesem übereinstimmenden Paket nicht vorhanden, wird der EGL-Buildpfad weiter nach einem anderen Paket mit demselben Namen durchsucht.
Bei diesem Schritt liest EGL alle bedarfsgesteuerten import-Anweisungen in Ihrer Quellendatei. Wenn derselbe Abschnittsname von mehr als einer bedarfsgesteuerten import-Anweisung aufgelöst wird, markiert EGL diesen Namen als mehrdeutig. Dieser Konflikt kann behoben werden, indem Sie eine oder mehrere der bedarfsgesteuerten import-Anweisungen durch eine import-Anweisung für einen einzelnen Abschnitt oder einen vollständig qualifizierten Abschnittsnamen ersetzen.
Wenn sich eine Bibliothek namens myLibrary im Paket com.companyb.payroll befindet, kann EGL diese anhand des folgenden Codes auflösen:
import com.companyb.payroll.*;
Es können keine Abschnitte aus dem Standardpaket importiert werden.
Systembereich
Der Systembereich wird nur dann nach einem übereinstimmenden Abschnitt durchsucht, wenn EGL einen Abschnittsnamen in keinem der vorherigen Schritte auflösen kann.

Feedback