Drools-sample-drools-program
Drools-サンプルDroolsプログラム
この章では、次の問題ステートメントのためのDroolsプロジェクトを作成します-
'__都市と製品の種類(都市と製品の組み合わせ)に応じて、その都市に関連する地方税を調べます。'__
Droolsプロジェクト用に2つのDRLファイルを作成します。 2つのDRLファイルは、検討中の2つの都市(PuneとNagpur)と4つのタイプの製品(食料品、医薬品、時計、高級品)を意味します。
- 両都市の医薬品に対する税金はゼロとみなされます。
- 食料品については、プネでRs 2、ナグプールでRs 1の税を想定しています。
同じ販売価格を使用して、異なる出力を示しました。 アプリケーションですべてのルールが実行されることに注意してください。
ここに各itemTypeを保持するモデルがあります-
DRLファイル
前述のとおり、ここではPune.drlとNagpur.drlの2つのDRLファイルを使用しました。
Pune.drl
これは、プネ市のルールを実行するDRLファイルです。
Nagpur.drl
これは、ナグプール市のルールを実行するDRLファイルです。
新しい都市が追加される場合、後で任意の数のルールファイルを追加する拡張性を提供するため、都市に基づいてDRLファイルを作成しました。
すべてのルールがルールファイルからトリガーされることを示すために、2つのアイテムタイプ(薬と食料品)を使用しました。薬は非課税であり、食料品は市ごとに課税されます。
テストクラスはルールファイルを読み込み、ファクトをセッションに挿入し、出力を生成します。
Droolstest.java
このプログラムを実行すると、その出力は次のようになります-
プネとナグプールの両方で、品目が医薬品の場合、地方税はゼロです。一方、アイテムが食料品である場合、税は市ごとに課されます。 他の製品のルールをDRLファイルに追加できます。 これは単なるサンプルプログラムです。
DRLファイルから外部関数を呼び出す
ここでは、DRLファイル内のJavaファイルから静的関数を呼び出す方法を示します。
まず、同じパッケージ com.sample に HelloCity.java クラスを作成します。
その後、DRLファイルにimportステートメントを追加して、DRLファイルからwriteHelloメソッドを呼び出します。 次のコードブロックでは、DRLファイルPune.drlの変更が黄色で強調表示されています。
プログラムを再度実行すると、その出力は次のようになります-
現在の出力の違いは黄色でマークされ、Javaクラスの静的メソッドの出力を示しています。
Javaメソッドを呼び出す利点は、任意のユーティリティ/ヘルパー関数をJavaで記述し、DRLファイルから呼び出すことができることです。