Drools Guvnor数据枚举API

时间:2012-11-03 05:15:13

标签: drools guvnor

在Guvnor文档中,我知道如何定义数据枚举并在Guvnor中使用它。是否可以从我自己的Java代码中获取数据枚举?

2 个答案:

答案 0 :(得分:0)

来自Guvnor的文档:

  

以编程方式加载枚举:在某些情况下,人们可能希望完全从外部数据源(例如关系数据库)加载其枚举数据。为此,您可以实现一个返回Map的类。映射的键是一个字符串(如上所示是Fact.field名称),值是字符串的java.util.List。

public class SampleDataSource2 {
    public Map<String>, List<String> loadData() {
        Map data = new HashMap();
        List d = new ArrayList();
        d.add("value1");
        d.add("value2");
        data.put("Fact.field", d);
        return data;
    }
}
  

在BRM​​S的枚举中,你把:

=(new SampleDataSource2()).loadData()
  

“=”告诉它通过执行代码来加载数据。

最诚挚的问候,

答案 1 :(得分:0)

我希望现在回答这个问题还为时不晚。

将enum从应用程序加载到guvnor,

  1. 从字符串动态构建枚举类(在我的情况下,用户通过GUI提供枚举值)
  2. 将其添加到jar中,将其转换为字节数组
  3. 通过REST调用将其作为资产(模型jar)发布到guvnor
  4. 调用存储库操作(更改guvnor的源代码)
  5. 现在,枚举将在规则窗口中显示为事实。

    编辑/删除模型jar并验证规则后果是你必须要小心的事情。