Ausgabe der Java-Wrappergenerierung

Bei der Java™-Wrappergenerierung wird Folgendes ausgegeben:

Sie können die generierten Beans für ein Wrapping von Aufrufen an Serverprogramme verwenden, die von Nicht-EGL-Java-Klassen wie Servlets, EJBs oder Java-Anwendungen ausgehen. Folgende Typen von Klassen werden generiert:

Die folgende Tabelle enthält die Namen der verschiedenen Typen generierter Java-Wrapperabschnitte:

Tabelle 1. Namen generierter Java-Wrapperabschnitte
Abschnittstyp und -name Was wird generiert?
Programm mit dem Namen P Klasse mit dem Namen PWrapper in PWrapper.java
Datensatz mit dem Namen R, der als Parameter oder Eingabedatensatz verwendet wird Klasse mit dem Namen R in R.java
Unterstrukturierter Bereich S in dem als Parameter verwendeten Datensatz R Klasse mit dem Namen R.S in R.java
Verbindungsoptionsabschnitt mit dem Namen L Verbindungseigenschaftendatei mit dem Namen L.properties
  1. Bei den angegebenen Abschnittstypen können mehrere Abschnitte mit demselben Namen vorhanden sein. In einem solchen Fall wird der Name des zweiten Abschnitts durch das Suffix '$v2' ergänzt. Der Name des dritten erhält dann das Suffix $v3 etc.

Wenn Sie für einen Programmabschnitt eine Generierung als Java-Wrapper anfordern, erzeugt EGL für jede der folgenden ausführbaren Komponenten eine Java-Klasse:

Darüber hinaus enthält die für die einzelnen Datensätze generierte Klasse eine untergeordnete Klasse (oder eine Klasse in einer untergeordneten Klasse) für jedes einzelne Strukturfeld, das die folgenden Merkmale aufweist:
Jede generierte Klasse wird in einer Datei gespeichert. Der EGL-Generator erstellt wie folgt Namen, die in Java-Wrappern verwendet werden:

Handelt es sich bei einem der Parameter für das Programm um einen Datensatz, generiert EGL auch eine Wrapperklasse für diese Variable. Verfügt ein Programm Prog über einen Satzparameter mit einer typedef namens 'Rec', lautet der Name der Wrapperklasse für den Parameter Rec. Hat die typedef eines Parameters denselben Namen wie das Programm, erhält die Wrapperklasse für den Parameter das Suffix 'Record'.

Vom Generator wird auch ein Wrapper erzeugt, wenn ein Datensatzparameter über ein Feldgruppenfeld verfügt und diesem Feld wiederum andere Felder untergeordnet sind. Dieser Wrapper für unterstrukturierte Feldgruppen wird zu einer untergeordneten Klasse des Datensatzwrappers. In den meisten Fällen wird ein unterstrukturiertes Feldgruppenfeld namens 'AField' in Rec in eine Klasse mit dem Namen Rec.AField eingeschlossen. Der Datensatz kann zwei unterstrukturierte Feldgruppenfelder mit demselben Namen enthalten. In diesem Fall werden die Feldwrapper mit den qualifizierten Namen der Felder bezeichnet. Lautet der qualifizierte Name des ersten AField-Feldes 'Top1.AField' und der qualifizierte Name des zweiten Feldes 'Top2.Middle2.AField', werden die Klassen mit den Namen Rec.Top1$_aField und Rec.Top2$_middle2$_aField bezeichnet. Stimmt der Name einer unterstrukturierten Feldgruppe mit dem Namen des Programms überein, erhält die Wrapperklasse für die unterstrukturierte Feldgruppe das Suffix Structure.

In den einzelnen Datensatzwrappern und Wrappern für unterstrukturierte Feldgruppen werden Methoden zum Definieren und Abrufen der Werte der Felder einer unteren Ebene generiert. Weisen zwei Felder einer unteren Ebene in der Satzfeldgruppe bzw. in der unterstrukturierten Feldgruppe denselben Namen auf, wird vom Generator das im vorangehenden Abschnitt beschriebene Schema für qualifizierte Namen angewendet.

Für einen SQL-Datensatz werden zusätzliche Methoden in Wrappern generiert. Vom Generator werden für jedes Feld im Datensatz Methoden zum Abrufen und Definieren des zugehörigen Nullanzeigerwerts sowie Methoden zum Abrufen und Definieren des zugehörigen SQL-Längenanzeigers erstellt.

Mit dem Tool 'Javadoc' können Sie nach dem Kompilieren der Klasse eine Datei mit dem Namen 'Klassenname.html' erstellen. Diese HTML-Datei beschreibt die öffentlichen Schnittstellen für die Klasse. Wenn Sie mit Javadoc erstellte HTML-Dateien verwenden, vergewissern Sie sich, dass es dabei um einen EGL-Java-Wrapper handelt. Aus einem Java-Wrapper von VisualAge Generator generierte HTML-Dateien unterscheiden sich von denen, die aus einem EGL-Java-Wrapper generiert werden.

Beispiel

Es folgt ein Beispiel für einen Datensatzabschnitt mit einer unterstrukturierten Feldgruppe:

   Record myRecord type basicRecord
     10 MyTopStructure[3];
       15 MyStructureField01 CHAR(3);
       15 MyStructureField02 CHAR(3);
   end
Im Hinblick auf den Programmabschnitt wird die Ausgabedatei wie folgt bezeichnet:
  AliasWrapper.java
Dabei gilt Folgendes:
Alias
Der Aliasname (soweit vorhanden), der im Programmabschnitt angegeben ist. Ist der externe Name nicht angegeben, wird der Name des Programmabschnitts verwendet.
Im Hinblick auf die einzelnen als Programmparameter deklarierten Datensätzen wird die Ausgabedatei wie folgt bezeichnet:
Datensatzname.java
Dabei gilt Folgendes:
Datensatzname
Der Name des Datensatzabschnitts
Im Hinblick auf eine unterstrukturierte Feldgruppe hängen Name und Position der untergeordneten Klasse davon ab, ob der Feldgruppenname im Datensatz eindeutig ist:
  • Ist der Feldgruppenname im Datensatz eindeutig, befindet sich die untergeordnete Klasse innerhalb der Satzklasse und hat den folgenden Namen:
    Datensatzname.siName
    Dabei gilt Folgendes:
    Datensatzname
    Der Name des Datensatzabschnitts
    siName
    Der Name der Feldgruppe
  • Wenn der Feldgruppenname im Datensatz nicht eindeutig ist, basiert der Name der untergeordneten Klasse auf dem vollständig qualifizierten Namen der Feldgruppe. Die einzelnen Qualifikationsmerkmale sind durch eine Kombination aus Dollarzeichen ($) und Unterstreichungszeichen (_) voneinander getrennt. Befindet sich die Feldgruppe beispielsweise auf der dritten Ebene des Datensatzes, ist die generierte Klasse eine untergeordnete Klasse der Satzklasse und hat folgenden Namen:
    Erster_Name$_Zweiter_Name$_SiName    
    Dabei gilt Folgendes:
    Erster_Name
    Der Name des Strukturfelds der höchsten Ebene
    Zweiter_Name
    Der Name des Strukturfelds der zweiten Ebene
    SiName
    Der Name des unterstrukturierten Feldgruppenfelds
    Ist eine andere Feldgruppe mit demselben Namen der höchsten Ebene des Datensatzes unmittelbar untergeordnet, befindet sich die untergeordnete Klasse ebenfalls innerhalb der Satzklasse und hat folgenden Namen:
    Erster_Name$_SiName
    Dabei gilt Folgendes:
    Erster_Name
    Der Name des Strukturfelds der höchsten Ebene
    SiName
    Der Name des unterstrukturierten Feldgruppenfelds

    Schließlich ist noch der folgende Fall möglich: Eine strukturierte Feldgruppe hat einen Namen, der im Datensatz nicht eindeutig ist, und ist einer anderen unterstrukturierten Feldgruppe untergeordnet, deren Name im Datensatz nicht eindeutig ist. Die Klasse für die untergeordnete Feldgruppe wird als untergeordnete Klasse einer untergeordneten Klasse generiert.

Wenn Sie einen Java-Wrapper generieren, werden auch eine Java-Eigenschaftendatei und eine Verbindungseigenschaftendatei generiert, sofern Sie anfordern, dass zur Laufzeit Verbindungsoptionen gesetzt werden.


Feedback