17.21. 基本的な条件要素


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

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat