18.8. ファクトへの制約の追加


Expand
表18.3 ファクトへの制約の追加
名前 説明
LHS 条件の表現
DSL ファシリティーを使用すると、単純な規則によりパターンに制約を追加できます。DSL 式がハイフン(マイナス文字、-)で始まる場合は、フィールド制約であると仮定されるため、が前の最後のパターン行に追加されます。
この例では、Cheese クラスには type、price、age、および country のフィールドがあります。通常の DRL では、一部の LHS 条件を表現できます。
Cheese(age < 5, price == 20, type=="stilton", country=="ch")
Copy to Clipboard Toggle word wrap
DSL 定義
この例の DSL 定義では、3 つの DSL フレーズが作成され、これらのフィールドに関連する制約の組み合わせを作成できます。
[when]There is a Cheese with=Cheese()
[when]- age is less than {age}=age<{age}
[when]- type is '{type}'=type=='{type}'
[when]- country equal to '{country}'=country=='{country}'
Copy to Clipboard Toggle word wrap
"-"
パーサーは-で始まる行を取得し、これを前述のパターンに制約として追加し、必要に応じてコンマを挿入します。
There is a Cheese with
        - age is less than 42
        - type is 'stilton'
Copy to Clipboard Toggle word wrap
Cheese(age<42, type=='stilton')
Copy to Clipboard Toggle word wrap
DSL フレーズの定義
さまざまな演算子と、任意のフィールド制約を処理する汎用式の DSL フレーズを定義すると、DSL エントリーの量が減少します。
[when][]is less than or equal to=<=
[when][]is less than=<
[when][]is greater than or equal to=>=
[when][]is greater than=>
[when][]is equal to===
[when][]equals===
[when][]There is a Cheese with=Cheese()
Copy to Clipboard Toggle word wrap
[when][]- {field:\w*} {operator} {value:\d*}={field} {operator} {value}
DSL 定義ルール 該当なし
There is a Cheese with
   - age is less than 42
   - rating is greater than 50
   - type equals 'stilton'
Copy to Clipboard Toggle word wrap
この場合、is less than などのフレーズは < に置き換えられ、行が最後の DSL エントリーと一致します。これによりハイフンが削除されますが、最終的な結果は引き続き前述のパターンに制約として追加されます。すべての行を処理した後、生成される DRL テキストは以下のようになります。
Cheese(age<42, rating > 50, type=='stilton')
Copy to Clipboard Toggle word wrap
注記
DSL 内のエントリーの順序は、個別の DSL 式が同じ行と一致することが意図されている場合(もう一方の後)に重要です。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat