Eigenschaften

Eigenschaften sind Name/Wert-Paare, die von EGL verwendet werden, um bestimmte Informationen zu einem Abschnitt, einer Variablen oder einer Anweisung zu codieren. EGL definiert diese Eigenschaften intern auf unterschiedliche Art und Weise. EGL-Programmierer brauchen lediglich eine Reihe wichtiger Unterschiede zu kennen:

In dieser Dokumentation wird der Begriff 'Eigenschaften' breitgefasst für alle vorstehenden Varianten verwendet.

Sie können alle diese Eigenschaften in einem SET-Werteblock setzen. Eine ausführlichere Beschreibung hierzu finden Sie unter SET-Werteblöcke. Weitere Informationen zu den Eigenschaften und Werten, die für einen bestimmten Abschnitt oder eine bestimmte Anweisung verfügbar sind, finden Sie in den einschlägigen Themen zu den Eigenschaften dieser Abschnitte und Anweisungen.

Welche Eigenschaften gültig sind, ist vom jeweiligen Kontext abhängig:

Auf einfache und komplexe Eigenschaften kann zur Ausführungszeit nicht zugegriffen werden. (Möglicherweise können Sie auf implizite Felder zugreifen.) Wenn Sie beispielsweise Variablen erstellen, die für relationale Datenbanksätze stereotypisiert sind, kann die von Ihnen geschriebene Logik keine Namen abrufen oder ändern, die der Eigenschaft 'tableNames' zugeordnet sind, mit der die Datenbanktabellen angegeben werden, auf die der Datensatz zugreift. Selbst wenn Sie einen Eigenschaftswert in einer Variablendeklaration überschreiben, kann Ihre Programmlogik den Wert, den Sie zur Entwicklungszeit angeben, nicht ändern.

Der fehlende Zugriff auf solche Eigenschaftswerte zur Ausführungszeit bedeutet, dass bei der Zuordnung des Inhalts einer Variablen oder bei der Verwendung der Variablen als Parameter der entsprechende Eigenschaftswert nicht zusammen mit dem Inhalt übertragen wird. Ebenso gilt: Wenn Sie einen Datensatz an eine EGL-Funktion übergeben, empfängt der Parameter zwar den Feldinhalt, behält jedoch die Eigenschaften bei, die zur Entwicklungszeit zugeordnet wurden. Mit anderen Worten: Die Funktion kann keine Überschreibungen erkennen, die das Programm an Datensatzeigenschaften vorgenommen hat.

Variablennamen und Eigenschaften

Wenn Sie den Namen einer EGL-Variablen einer Eigenschaft zuordnen, verwenden Sie den Variablennamen direkt. Schließen Sie den Namen nicht in Anführungszeichen ein, da diese eine Literalzeichenfolge angeben. Befolgen Sie diese Regel für die folgenden Eigenschaften:
Basisprogramm
inputRecord
JSF-Handler-Stereotyp
onConstructionFunction, initialUI-Feldgruppenelemente
Rich UI-Handler-Stereotyp
onConstructionFunction, validationByPassFunctions, validatorFunction, viewRootVar.
SQLRecord-Stereotyp
keyItems
Sonstige Eigenschaften
msgField, numElementsItem, selectedIndexItem, selectedRowItem, selectedValueItem , selectFromListItem, validatorDataTable, validatorFunction, redefines

Komplexe Eigenschaften

In bestimmten Fällen können Sie Merkmale für die Generierung angeben, indem Sie eine (aus einer Gruppe von Eigenschaftsfeldern bestehende) komplexe Eigenschaft zuordnen. Das folgende Beispiel deklariert einen EGL-Service und definiert die komplexe Eigenschaft 'xml', die die erforderlichen Details für die Bereitstellung des Zugriffs auf den Service enthält:
myService ExampleService {
   @xml {
      name="HelloWorld",
      namespace="http://my.website/services"} }
...
end

Zur Ausführungszeit kann weder auf die komplexe Eigenschaft selber noch auf ihre Eigenschaftsfelder zugegriffen werden.

Zuordnung und Eigenschaften

Eigenschaften werden nicht übertragen, wenn Sie eine Wertevariable einer anderen Wertevariablen zuordnen. Betrachten Sie folgendes Szenario:
  myVar1 INT {color = red} = 5;
  myVar2 INT {color = blue} = 2;

  myVar1 = myVar2;

Nach der Zuordnung hat myVar1 den Wert 2 und rot als Farbe.

Dasselbe wird erreicht, wenn Sie eine Variable als Argument an eine Funktion übergeben. Die Funktion empfängt den Wert der Variablen, aber keine ihrer Eigenschaften.

Referenzvariablen weisen ein anderes Verhalten auf. Wenn Sie Eigenschaften zu einer Referenzvariablen zuordnen, dann erfolgt die Zuordnung zu dem Objekt, auf das die Variable zeigt. Nach einer Zuordnung zeigt eine zweite Referenzvariable auf dasselbe Objekt. Das folgende Beispiel zeigt die Zuordnung einer Referenzvariablen:
myDictionary1 Dictionary { caseSensitive=NO };
myDictionary2 Dictionary { caseSensitive=YES };

myDictionary1 = myDictionary2;

Nach der Zuordnung zeigt myDictionary1 auf denselben Wörterverzeichnisabschnitt (Dictionary) wie myDictionary2, sodass bei myDictionary1 nun die Groß-/Kleinschreibung beachtet werden muss.


Feedback