EGL プロパティーの概要

ほとんどの EGL パーツは、生成時に適切な出力を作成するための一連のプロパティーを備えています。 これらのプロパティーは値の設定ブロック で設定します。値の設定ブロックは、 このトピックの後半に記載されているコードの領域であり、『値の設定ブロック』で 詳しく説明します。

有効なプロパティー・セットは、コンテキストによって変化します。

実行時にプロパティーにアクセスすることはできません。 例えば、SQL レコード・パーツに基づいた変数を作成する場合、tableNames プロパティー (これは、そのレコードのアクセス先となる SQL テーブルを識別します) に割り当てられた名前の取り出しや変更を行うロジックを作成することはできません。 変数宣言の中でプロパティー値をオーバーライドしたとしても、開発時に指定した値をロジックで変更することはできません。

プロパティー値へのランタイム・アクセスが行われないことは、変数の内容を代入したり、 その変数を引数として使用したりするときに、プロパティー値が内容と一緒に転送されないことを 意味します。 例えば、SQL レコード間でデータをコピーした場合、コピー先レコードのアクセス先となる SQL テーブルの指定には、変更が加えられません。 同様に、SQL レコードを EGL 関数に渡す場合、パラメーターはフィールド内容を受け取りますが、開発時に割り当てられていた SQL テーブルの指定を保存します。

ConsoleField などの事前定義 EGL パーツには、プロパティーと事前定義フィールドの 両方を組み込むこともできます。 プロパティーとは異なり、フィールド (ときには属性 と呼ばれる) は、 実行時に使用可能 です。 フィールド値を読み取るロジックを作成でき、多くの場合、フィールド値を変更するロジックも作成できます。

定義するフィールドにアクセスするときに、事前定義フィールドにアクセスします。 値の設定ブロックを使用して、フィールドおよびプロパティーを設定できます。
注: 固定構造体内のフィールドには、1 つの制限事項が適用されます。値の設定ブロックを使用して、プリミティブ・フィールド・レベル・プロパティーに値を代入できますが、フィールド自体の値を設定することはできません。

値の設定ブロックで同一フィールドまたはプロパティーに複数の割り当てを 行うと、最後の割り当てが有効になります。この規則は、次のセクションで 説明されている複合プロパティーのフィールドにも適用されます。

複合プロパティー

場合によっては、 それぞれが一連のプロパティー・フィールドで構成された複合プロパティーを割り当てることによって、 生成特性を指定します。 例えば以下のような構文を使用し、EGL サービスを宣言して、 サービスへのアクセスの提供に必要な詳細を含んだ複合プロパティー @EGLBinding を定義することができます。
  myService myServicePart 
  { @EGLBinding
    {commType="DIRECT",
     serviceName="myService",
     servicePackage="my.useful.service"}
  }

複合プロパティーも、そのフィールドも、実行時にはアクセスできません。

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.