DecisionTable などから動的データ構造を作成したいと考えています。
私が言えることは、次のように静的に型指定されたデータ構造のみが可能です。
ウィキコード:
|should I buy milk|
|cash in wallet|credit card|broke?|
|0 |0 |yes |
列は setCashInWallet(int cash) および setCreditcard(int credit) によってフィクスチャにマップする必要があります。
私がやりたいのは、各列がリストに取り込まれるより柔軟なものです:
List<Map<String, Object>> decisionTable = new ArrayList<Map<String, Object>>();
Map<String, Object> row = new HashMap<String, Object>();
テストのセットアップで、ターゲット オブジェクトを指定します。例: com.domain.MoneyIHave. フィクスチャでは、リフレクションを介してデータ構造を this のインスタンスに変換します。
ファクト (データ構造) を drools セッションに追加するための API は疎結合です。
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
for( Object fact : facts ) { //<----- loose baby!
ksession.insert( fact );
}
ksession.fireAllRules();
ksession.dispose();
これが可能であれば、データ構造の変更の影響を受けないフィクスチャをいくつか作成できます。これらのフィクスチャは、ほぼすべてのシナリオを処理できます。
しかし、私はこれの例を見つけることができません。
事前にTnx。