フラグ

フラグはルール宣言で Rule キーワードの前に配置されます。複数のフラグを単一のルール宣言で組み合わせることができます。フラグの順番は重要ではありません。フラグはキーワードではありません。

すべてのフラグが既定とは異なるルールの処理を要求します。フラグは Intent カーネルに組み込まれている側面があり、Intent Language で新しいフラグを定義する方法はありません。

基本的なルールは、すべてのフラグをサポートします。一部のフラグは他のフラグより頻繁に使用されます。

[現場溶接記号] 使用頻度
<なし> [共通]
[パラメータ] [共通]
Lookup 時々
Canonical ユーザ定義デザインで時々、またはまれに使用します。システム デザインでは一般的に使用します。Passive と一緒に使用します。
Passive ユーザ定義デザインで時々、またはまれに使用します。システム デザインでは一般的に使用します。Canonical と一緒に使用します。
固定 ユーザ定義デザインでまれに使用します。
Uncached ユーザ定義デザインでまれに使用します。
外部 新規。ユーザ定義デザインで時々、またはまれに使用します。
Shared 新規。ユーザ定義デザインで時々使用します。

フラグの簡単な説明を以下に示します。

[パラメータ]

他の評価の前に、ルールがパーツのパラメータ一覧から値の取得を試みることを示します。値がパラメータとして提供されていない場合、ルールの評価が続行されます。

Lookup

既定の値を使用する前に、ルールがその親から値の取得を試みることを示します。評価中に、ランタイム システムが親の中の同じ名前のルールに対する参照(値の要求)を作成します。この参照が失敗した場合、元のルールの評価が続行されます。

固定

このルールが動的ルールによって上書きされないことを示します。同じ名前の動的ルールの追加が試みられると、エラーが生成されます。Fixed フラグはユーザ定義デザインでは一般的ではありません。

Uncached

メモリに保存されない値を持つルールを示します。ルールは他のルールによって参照されるたびに評価されます。これは、ルールの評価が値の取得の代わりに(または値の取得に加えて)効果を発揮するために行われる場合に便利です。

Canonical および Passive のフラグはグループ ルールで使用するように定義されています。システム デザインでは一般的ですが、ユーザ定義デザインでは使用頻度は少ないです。

Canonical

グループ ルールの Passive フラグと一緒に使用します。

Passive

グループ ルールの Canonical フラグと一緒に使用します。

外部

このルールがバインド解除されたときに UnbindNotifyEvent が実行されるようにします。アプリケーションでこれらのイベントを検出し、外部管理リソースをクリーンアップできます。詳細については、「External フラグ」を参照してください。

Shared

すべてのパーツ インスタンスがルールを共有するように、ルール値をパーツ インスタンスではなくデザインに格納します。パーツ インスタンスごとに変化しないルール(designName など)に使用し、メモリを節約します。