0

我想从 DecisionTable 或类似的东西创建一个动态数据结构。

据我所知,只有静态类型的数据结构是可能的,如下所示:

维基代码:

|should I buy milk|
|cash in wallet|credit card|broke?|
|0             |0          |yes   |

这些列必须通过 setter 映射到夹具: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 提前。

4

1 回答 1

0

你看过餐桌吗?

http://fitnesse.org/FitNesse.UserGuide.SliM.TableTable

于 2012-12-03T09:28:23.670 回答