【问题标题】:JBoss Guvnor, can I create arrays and/or maps in a Declarative Model?JBoss Guvnor,我可以在声明模型中创建数组和/或映射吗?
【发布时间】:2012-09-24 14:32:13
【问题描述】:

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

【问题讨论】:

    标签: java drools rule-engine


    【解决方案1】:

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

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

    1. 创建新的声明性模型

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

    3. 添加字段:
      名称:字符串
      饮料:字符串

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

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

    如果您点击“查看源代码”,您应该会看到如下内容:

    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);
    

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

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      我认为这是不可能的(通过尝试和阅读文档)。我在 Guvnor 中读到过,您可以从现有 POJO 模型 (jar) 扩展类,并以这种方式使它们具有声明性。

      【讨论】:

        猜你喜欢
        • 2020-03-31
        • 1970-01-01
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-13
        • 2018-03-19
        相关资源
        最近更新 更多