プロパティーの概要
プロパティー・セットは、パーツの特定のオプションを指定します。通常、パーツの作成時にプロパティーを指定すると、そのプロパティーは静的になります。 ただし、特定の環境において、プロパティーを動的に変更することができます。
パーツごとおよびステレオタイプごとに、使用可能なプロパティーが異なります。パーツの作成時に、どのプロパティーが適切であるかを確認してください。 一部のパーツではプロパティーが必須になることもありますが、ほとんどのプロパティーはオプションです。
DataItem cost money(10,2)
{Currency = yes,
CurrencySymbol = "$"}
end
左中括弧で始まり右中括弧で終わるコード・ブロック (つまり、プロパティーとその値のリスト) は、値の設定ブロック と呼ばれます。プロパティーは、特定の状態でのみ有効となります。 例えば、DataItem パーツには、特定のタイプのユーザー・インターフェースのみに適用されるプロパティーを、組み込むことができます。 前述の例では、プロパティー currency と currencySymbol を任意の DataItem パーツに指定して、DataItem が通貨値を表していることを示し、値の表示時に使用する通貨記号を指定することができます。「EGL 言語解説書」の『currencySymbol』トピックを見ると、このプロパティーを Web ページで使用する際には有効になり、コンソール・ユーザー・インターフェース・アプリケーションで使用する際には無効になることが分かります。
プロパティー値
それぞれのプロパティーに対して、有効な値を提供する必要があります。プロパティーには、文字列リテラルを受け入れるもの、値 "yes" または "no" を受け入れるもの、列挙 というオプション・リストの値を受け入れるもの、配列リテラルを受け入れるもの、などがあります。ほとんどの場合、プロパティーの値として変数や定数を使うことはできません。つまり、currency プロパティーの値として、ブール変数やストリング変数で "yes" または "no" を設定することはできず、リテラル (つまり、値 "yes" または "no" の引用符を外したもの) を指定しなければなりません。
ただし、変数またはパーツの名前を値として入力する必要があるプロパティーも、いくつかあります。この場合、プロパティーは変数またはパーツの値を使用するのではなく、 変数またはパーツ自体を参照することになります。
プロパティーの中には、前のバージョンまたは移行されたコードとの互換性を確保するために提供されているものがあります。これらは、新規 EGL アプリケーションでは不要となります。新規コード用に提供されているプロパティーと、互換性の確保用に提供されているプロパティーを識別するには、「EGL 言語解説書」のトピックで、特定のパーツとそのプロパティーについて説明しているものを参照してください。
プロパティーの継承と指定変更
DataItem myRedVar int {color = red} end
Record myRedRecord type BasicRecord
myField myRedVar;
end
この場合、フィールド myField の振る舞いは、
このフィールドに color プロパティーを指定したかのようになります。myRedInt int {color = red};
myBlueInt int {color = blue};
myBlueInt = myRedInt;
この場合、myBlueInt の color プロパティーは、blue に設定されたままになります。参照変数は、プロパティー転送に対する例外です。「EGL 言語解説書」の『プロパティー』を参照してください。
DataItem myRedVar int {color = red} end
Record myBlueRecord type BasicRecord
myField myRedVar {color = blue};
end
ここでは、フィールド myField によって、
値 red が値 blue に指定変更されています。myBlueVar int {color = red, color = blue};
この場合、2 番目の定義が最初の定義を指定変更するため、変数の color プロパティーは blue に設定されます。