JBoss Guvnor,我可以在声明模型中创建数组和/或映射吗?

时间:2012-09-24 14:32:14

标签: java drools rule-engine

我在JBoss中使用Drools Guvnor。我正在创建一个Declarative Model对象。我可以添加简单类型,如String,Boolean等。是否可以在我的对象中添加数组,List和/或Map?

2 个答案:

答案 0 :(得分:2)

可以在声明模型中使用列表和地图。

我使用了Drools Guvnor 5.5.0.Final并且这样做了:

  1. 创建新的声明性模型

  2. 添加新的事实类型:
    姓名:人

  3. 添加字段:
    name:String
    饮料:字符串

  4. 添加新的事实类型:
    姓名:派对

  5. 添加字段:
    人:java.util.List

  6. 如果您点击“查看来源”,您应该会得到以下内容:

    declare Person
        name: String
        drink: String
    end
    
    declare Party
        people: java.util.List
    end
    

    为了使用该模型,我在Guvnor中创建了一个“技术规则”,如下所示:

    when
    then
          Person pa = new Person();
          pa.setName("A");
          pa.setDrink("Lager");
          Person pb = new Person();
          pb.setName("B");
          pb.setDrink("IPA");
          Party p = new Party();
          p.setPeople(new java.util.ArrayList());
          p.getPeople().add(pa);
          p.getPeople().add(pb);
    
          insert(pa);
          insert(pb);
          insert(p);
    

    泛型似乎在流氓中效果不佳。我构建软件包时遇到了一些编译错误。

    我希望它有所帮助!

答案 1 :(得分:1)

我认为这是不可能的(从尝试和阅读文档)。我已经读过Guvnor,你可以从现有的POJO模型(jar)扩展类,并以这种方式声明它们。