43.2. RuleTable の定義

デシジョンテーブルの RuleTable 領域のエントリーは、そのルールテーブルのルールに対する条件、アクション、その他のルール属性を定義します。デシジョンテーブルのスプレッドシートには、RuleTable 領域を複数追加できます。

以下の表は、RuleTable 定義でサポートされるラベル (列ヘッダー) および値を示しています。列ヘッダーには、指定のラベル、またはこの表に記載されている文字で始まるカスタムラベルのいずれかを使用できます。

表43.2 サポートされる RuleTable の定義

ラベルまたはカスタムラベルの頭文字使用法

NAME

N

その行で生成したルールの名前を提供します。デフォルトは、RuleTable タグと行番号に続くテキストから作成されます。

最大 1 列。

DESCRIPTION

I

生成したルールのコメントになります。

最大 1 列。

CONDITION

C

条件内のパターンに制約を構築するコードスニペットおよび補間値。

ルールテーブルごとに最低 1 つ。

ACTION

A

ルールの結果に対するアクションを構築するコードスニペットおよび補間値。

ルールテーブルごとに最低 1 つ。

METADATA

@

ルールに対するメタデータエントリーを構築するコードスニペットおよび補間値。

任意。列の数。

以下のセクションでは、条件、アクション、メタデータの列のセルデータがどのように使用されるかを説明します。

条件

CONDITION ヘッダーの列では、連続した行のセルが、条件要素になります。

  • 1 つ下のセル: CONDITION のすぐ下のセルのテキストは、ルール条件のパターンを進化させ、次の行のスニペットを制約として使用します。そのセルを、隣接した 1 つ以上のセルと結合した場合は、複数の制約を持った 1 つのパターンが作成されます。すべての制約が結合して括弧で囲まれ、このセルのテキストに追加されます。

    このセルを空にすると、以下のセルのコードスニペットが自動的に有効な条件要素となります。たとえば、オブジェクトタイプに Order、制約に itemsCount > $1 を (別々に) 追加する代わりに、オブジェクトタイプセルを空にして、制約セルに Order( itemsCount > $1) と入力できます。その他の制約セルでも同じです。

    パターンのテキストの前に別のパターンを記述すれば、制約を使用しないパターンを追加できます。中が空の括弧は追加することも省くこともできます。パターンに from 句を追加することもできます。

    パターンを eval で終了すると、コードスニペットが eval の後の括弧の中にブール表現を生成します。

    @watch アノテーションを使用してパターンを終了できます。これは、パターンが反応するプロパティーをカスタマイズするために使用されます。

  • 2 つ下のセル: CONDITION の 2 つ下のセルのテキストは、1 つ下のセルのオブジェクト参照の制約として処理されます。このセルのコードスニペットは、その列のさらに下にあるセルから値が補間されます。下のセルからの値と == を使用した比較で設定される制約を作成する場合は、フィールドセレクターだけで十分です。フィールドセレクターのみを使用し、== の比較を追加せずに条件を使用する場合は、記号 ? で条件を終了する必要があります。その他の比較演算子は、スニペットの最後に指定する必要があり、値は下のセルから追加されます。その他のすべての制約形式については、$param シンボルを使用して、セルの内容を追加する場所を指定する必要があります。$1$2 などのシンボルを使用し、下のセルにコンマで区切った値を指定すれば、複数の値を挿入することもできます。$1$2 などをコンマで区切らないでください。テーブルの処理に失敗します。

    パターン forall($delimiter){$snippet} に従ってテキストを展開する場合は、その下の各セルで、コンマ区切りの値に対して $snippet がそれぞれ 1 回ずつ使用されます。$ シンボルの場所に値が挿入され、指定した $delimiter で結合します。forall 構文は、他のテキストで囲むことができるのに注意してください。

    1 つ下のセルにオブジェクトが含まれている場合は、そのセルから条件要素に完全なコードスニペットが追加されます。括弧のペアと、(結合したセルのパターンに複数の制約が追加されている場合は) 区切り文字のコンマが自動的に提供されます。1 つ下のセルが空の場合は、このセルのコードスニペットが自動的に有効な条件要素となります。たとえば、オブジェクトタイプに Order、制約に itemsCount > $1 を (別々に) 追加する代わりに、オブジェクトタイプセルを空にして、制約セルに Order( itemsCount > $1) と入力できます。その他の制約セルでも同じです。

  • 3 つ下のセル: CONDITION の 3 つ下のセルのテキストは、見やすくするためにその列の説明を入力するラベルです。
  • 4 つ下のセル: 4 行目以降の、空セル以外のエントリーは補間データとして提供されます。セルが空の場合は、このルールで制約や条件が省略されます。
アクション

ACTION ヘッダーの列では、連続した行のセルが、アクション命令文になります。

  • 1 つ下のセル: ACTION ヘッダーの 1 つ下のセルのテキストは任意です。テキストがある場合は、オブジェクト参照として解釈されます。
  • 2 つ下のセル: ACTION の 2 つ下のセルのテキストは、その列のさらに下にあるセルの値が補完されるコードスニペットです。挿入が 1 つの場合は、$param シンボルを使用して、セルの内容を追加する場所を指定します。$1$2 などのシンボルを使用し、下のセルにコンマで区切った値を指定すれば、複数の値を挿入することもできます。$1$2 などをコンマで区切らないでください。テーブルの処理に失敗します。

    テキストにマーカーシンボルがない場合は、補完なしでメソッドが呼び出されます。このとき、下の行で空セル以外のエントリーを使用して、命令文を追加します。forall 構文がサポートされます。

    1 つ下のセルにオブジェクトが含まれている場合は、そのセルのテキスト、ピリオド、2 つ下のセルのテキスト、終わりを示すセミコロンが 1 列に並べられ、アクション命令文として追加されるメソッドコールとなります。1 つ下のセルが空の場合は、このセルのコードスニペットが自動的に有効なアクション要素となります。

  • 3 つ下のセル: ACTION の 3 つ下のセルのテキストは、見やすくするためにその列の説明を入力するラベルです。
  • 4 つ下のセル: 4 行目以降の、空セル以外のエントリーは補間データとして提供されます。セルが空の場合は、このルールで制約や条件が省略されます。
メタデータ

ヘッダーが METADATA の列では、連続した行のセルが、生成されるルールのメタデータアノテーションになります。

  • 1 つ下のセル: METADATA の 1 つ下のセルのテキストは無視されます。
  • 2 つ下のセル: METADATA の 2 つ下のセルのテキストは、ルール行のセルの値を使用して補完されます。メタデータのマーカー文字 @ がプリフィックスとして自動的に追加されるため、このセルのテキストに追加する必要はありません。
  • 3 つ下のセル: METADATA の 3 つ下のセルのテキストは、見やすくするためにその列の説明を入力するラベルです。
  • 4 つ下のセル: 4 行目以降の、空セル以外のエントリーは補間データとして提供されます。セルが空の場合は、このルールでメタデータアノテーションが省略されます。