17.21. 基本的な条件要素
| 名前 | 説明 | 例 | 追加オプション |
|---|---|---|---|
|
および
|
Conditional 要素
および は、他の Conditional 要素を論理積にグループ化するために使用されます。JBoss ルールは 、 接頭辞 と インフィックス と の両方をサポート し ます。括弧を使用した明示的なグループ化をサポートします。従来の infix および prefix および を使用することもできます。
|
//infixAnd Cheese( cheeseType : type ) and Person( favouriteCheese == cheeseType )
//infixAnd with grouping
( Cheese( cheeseType : type ) and
( Person( favouriteCheese == cheeseType ) or
Person( favouriteCheese == cheeseType ) )
|
接頭辞
および もサポートされます。
(and Cheese( cheeseType : type )
Person( favouriteCheese == cheeseType ) )
LHS のルート要素は暗黙的な接頭辞であるため
、 指定する必要はありません。
when
Cheese( cheeseType : type )
Person( favouriteCheese == cheeseType )
then
...
|
|
または
|
これは、2 つ以上の同様のルールを生成するためのショートカットです。JBoss ルールは、接頭辞
または infix の両方をサポートします。従来の infix、接頭辞、および明示的なグループ化の括弧を使用できます。
|
//infixOr Cheese( cheeseType : type ) or Person( favouriteCheese == cheeseType )
//infixOr with grouping
( Cheese( cheeseType : type ) or
( Person( favouriteCheese == cheeseType ) and
Person( favouriteCheese == cheeseType ) )
(or Person( sex == "f", age > 60 )
Person( sex == "m", age > 65 )
|
オプションのパターンバインディングを許可します。各パターンは、ディープ変数を使用して個別にバインドする必要があります。
pensioner : ( Person( sex == "f", age > 60 ) or Person( sex == "m", age > 65 ) )
(or pensioner : Person( sex == "f", age > 60 )
pensioner : Person( sex == "m", age > 65 ) )
|
|
not
|
これにより、存在しないと指定されたオブジェクトが作業メモリーに含まれていないことを確認します。これは、適用する条件要素の括弧の後に続きます。(単一のパターンでは、括弧を省略できます。)
|
| |
| exists |
これにより、ワーキングメモリーがチェックされ、指定したアイテムが存在するかどうかを確認します。キーワードが
存在 するには、適用する CE の周りの括弧が続く必要があります。(単一のパターンでは、括弧を省略できます。)
|
| |
注記
Conditional Element
また は の動作は、フィールド制約の制約と制約のために接続 || とは異なります。エンジンは Conditional 要素 また は を解釈できません。代わりに、また は が指定されたルールは、複数のサブルールとして書き換えられます。このプロセスにより、最終的には、ルートノードおよび各 CE に 1 つのサブルールを持つルールが作成されます。各サブルールは通常のルールと同様にアクティベートおよび実行できます。これらのサブルールの間には、特別な動作や対話はありません。