Aliasnamen für Java-Wrapper-Namen erstellen

Der EGL-Generator wendet auf Aliasnamen für Java™-Wrappernamen die folgenden Regeln an:

  1. Wenn der EGL-Name nur aus Großbuchstaben besteht, wird er in Kleinbuchstaben umgesetzt.
  2. Ist der Name ein Klassen- oder Methodenname, wird der erste Buchstabe als Großbuchstabe angegeben. (Die Getter-Methode für x ist beispielsweise getX() und nicht getx().)
  3. Alle Unterstreichungszeichen (_) und Bindestriche (-) werden gelöscht. (In EGL-Namen sind Bindestriche zulässig, wenn Sie den VisualAge-Generator-Kompatibilitätsmodus verwenden.) Folgt auf ein Unterstreichungszeichen oder einen Bindestrich ein Buchstabe, wird dieser in einen Großbuchstaben geändert.
  4. Handelt es sich bei dem Namen um einen qualifizierten Namen, bei dem der Punkt (.) als Trennzeichen verwendet wird, werden alle Punkte durch ein Unterstreichungszeichen ersetzt und dem Namen wird ein Unterstreichungszeichen vorangestellt.
  5. Enthält der Name ein Dollarzeichen ($), wird das Dollarzeichen durch zwei Unterstreichungszeichen ersetzt und dem Namen ein Unterstreichungszeichen vorangestellt.
  6. Handelt es sich bei einem Namen um ein Java-Schlüsselwort, wird dem Namen ein Unterstreichungszeichen vorangestellt.
  7. Lautet der Name * (ein Stern, der als Platzhalter verwendet wird), wird der erste Stern in Filler1, der zweite Stern in Filler2 etc. umbenannt.

Darüber hinaus gelten bei den Java-Wrapperklassennamen für Programmwrapper, Datensatzwrapper und unterstrukturierte Feldgruppenfelder besondere Regeln. Diese Regeln werden im Folgenden erläutert und durch Beispiele ergänzt. Generell gilt, dass bei Namenskonflikten bei Feldern innerhalb einer generierten Wrapperklasse der qualifizierte Name zur Bestimmung von Klassen- und Variablennamen verwendet wird. Lässt sich der Konflikt so nicht lösen, wird bei der Generierung eine Ausnahme ausgelöst.

Programmwrapperklasse

Satzparameterwrapper werden benannt, indem die obigen Regeln auf den Namen der Typdefinition angewendet werden. Ergibt sich bei dem Namen der Datensatzwrapperklasse ein Namenskonflikt mit dem Namen der Programm- oder Programmwrapperklasse, wird am Ende des Namens der Datensatzwrapperklasse Record hinzugefügt.

Für Variablennamen gelten die folgenden Regeln:
  1. Die Satzparametervariable wird nach den obigen Regeln benannt, die auf den Parameternamen angewendet werden. Diese Namen sind daher in den Methoden get() und set() enthalten, nicht der Klassenname.
  2. Die Methoden get und set erhalten den Namen get oder set gefolgt vom Parameternamen, auf den die obigen Regeln angewendet wurden.

Datensatzwrapperklasse

Für Klassennamen für unterstrukturierte Feldgruppenfelder gelten die folgenden Regeln:
  1. Das unterstrukturierte Feldgruppenfeld wird zu einer untergeordneten Klasse der Datensatzwrapperklasse und der Klassenname wird abgeleitet, indem die obigen Regeln auf den Feldnamen angewendet werden. Ergibt sich bei diesem Klassennamen ein Namenskonflikt mit dem Namen der übergeordneten Datensatzklasse, wird Structure an den Feldklassennamen angehängt.
  2. Ergeben sich Namenskonflikte innerhalb der Feldklassennamen, werden die qualifizierten Feldnamen verwendet.
Für die Namen der Methoden get und set gelten folgende Regeln:
  1. Die Methoden erhalten einen Namen, bei dem auf get bzw. set der Feldname folgt, auf den die obigen Regeln angewendet wurden.
  2. Ergeben sich Namenskonflikte innerhalb der Feldnamen, werden die qualifizierten Feldnamen verwendet.

Klasse für unterstrukturierte Feldgruppenfelder

Für die Klasse für unterstrukturierte Feldgruppenfelder gelten folgende Regeln:
  1. Das unterstrukturierte Feldgruppenfeld wird zu einer untergeordneten Klasse der Wrapperklasse, die für das übergeordnete unterstrukturierte Feldgruppenfeld generiert wurde, und der Klassenname wird abgeleitet, indem die obigen Regeln auf den Feldnamen angewendet werden.
  2. Ergibt sich bei diesem Klassennamen ein Namenskonflikt mit dem Namen der übergeordneten Klasse für unterstrukturierte Feldgruppenfelder, wird Structure an den Feldklassennamen angehängt.
Für die Namen der Methoden get und set gelten folgende Regeln:
  1. Die Methoden erhalten einen Namen, bei dem auf get bzw. set der Feldname folgt, auf den die obigen Regeln angewendet wurden.
  2. Ergeben sich Namenskonflikte innerhalb der Feldnamen, werden die qualifizierten Feldnamen verwendet.

Beispiel

Das folgende Beispielprogramm und die generierte Ausgabe zeigen den Verlauf einer Wrappergenerierung:

Beispielprogramm

Program WrapperAlias(param1 RecordA)
  
end

Record RecordA type basicRecord
	10 fieldA CHAR(10)[1];
	10 field_b CHAR(10)[1];
	10 field$C CHAR(10)[1];
	10 static CHAR(10)[1];
	10 fieldC CHAR(20)[1];
		15 field CHAR(10)[1];
		15 fieldD CHAR(10)[1];
	10 arrayField CHAR(20)[5];
		15 innerField1 CHAR(10)[1];
		15 innerField2 CHAR(10)[1];
end

Generierte Ausgabe

Namen generierter Ausgaben
Ausgabe Name
Programmwrapperklasse WrapperaliasWrapper mit einem Feld Param1, das eine Instanz der Datensatzwrapperklasse DatensatzA ist.
Parameterwrapperklassen DatensatzA, auf den mit folgenden Methoden zugegriffen werden kann:
  • getFieldA (von fieldA)
  • getFieldB (vom ersten Feld field-b)
  • get_Field__C (von field$C)
  • get_Static (von static)
  • get_FieldC_itemB (von fieldB in fieldC)
  • getFieldD (von fieldD)
  • getArrayField (von arrayField)
Bei ArrayField handelt es sich um eine untergeordnete Klasse von RecordA, die Felder enthält, auf die über getInnerField1 und getInnerField2 zugegriffen werden kann.

Feedback