Paket

Die EGL-Anweisung 'package' ordnet einer Sammlung aus zusammengehörigen Abschnitten einen Namen zu.

Alle EGL-Quellendateien sollten eine Anweisung 'package' enthalten. Zu einem Paket können beliebig viele Dateien gehören. Daher kann ein Paket auch mehrere package-Anweisungen (eine pro Quellendatei) enthalten. Wenn Sie in einer Datei keine Anweisung 'package' angeben, wird die Datei direkt im Quellenordner gespeichert und befindet sich dann im sogenannten Standardpaket. Abschnitte im Standardpaket können nicht von Abschnitten in anderen Paketen oder Projekten gemeinsam genutzt werden. Aus diesem Grund sollte die Verwendung des Standardpakets vermieden werden, indem stets eine Anweisung 'package' angegeben wird.

Zwei Abschnitte mit demselben Namen können nicht in demselben Paket definiert werden. Außerdem sollte vermieden werden, identische Paketnamen in unterschiedlichen Projekten oder Ordnern zu verwenden.

Syntax

Syntaxdiagramm für die Anweisung 'package'
Paketname
Der Abschnitt 'Namenskonventionen' in diesem Thema enthält weitere Informationen dazu, wie ein Paket benannt wird.

Namenskonventionen

Konventionsgemäß werden Paketnamen eindeutig gemacht, indem Sie einem Paketnamen den umgekehrten Internetdomänenname Ihres Unternehmens voranstellen. Beispiel: Der Domänenname von IBM® lautet ibm.com, und die EGL-Pakete beginnen mit "com.ibm." Der Paketname (eine Folge aus mit Punkten voneinander getrennten Kennungen) dient der Identifizierung der Ordner für Paketdateien, wie im folgenden Beispiel:
  com.CompanyB.Customer

Jeder Name entspricht einem Unterordner. Daraus ergibt sich im vorstehenden Beispiel die folgende Verzeichnisstruktur: financialProjects\EGLSource\com\CompanyB\Customer. Wenn EGL Verzeichnisse im Java™-Ressourcenverzeichnis (Resources) erstellt, werden alle Namen in Kleinschreibung geändert. Dies liegt daran, dass bei EGL nicht die Groß-/Kleinschreibung beachtet werden muss, bei Java jedoch sehr wohl.

Beispiel

Das nachstehende Beispiel zeigt den Anfang und das Ende einer Bibliotheksdatei. Da die Deklaration 'CustomerRecord' außerhalb des Bibliotheksabschnitts liegt, gilt sie global für das Paket (siehe Gültigkeitsbereich).
package com.companyb.customer;

Record CustomerRecord type SQLRecord 
{ keyItems=["customerNumber"] }
	customerNumber INT;   // Schlüsselelement
	customerName STRING;
	customerBalance DECIMAL(9,2);
end

Library CustomerLib

  myCustomer CustomerRecord;

  getCustomer()
  ...
  end  // Ende Funktion

end // Ende Bibliothek

Feedback