通过包装器匹配流口水事实

时间:2018-12-07 17:32:23

标签: java drools drools-guvnor drools-planner drools-fusion

我有一个POJO,我想检查它是否存在于POJO列表中。我可以使用以下规则进行此操作:

when
    $pojo:Pojo() and
    $pojoLs:PojoLS() and
    $test:PojoLS() from collect (Pojo(this.equals($pojo)) from $pojoLs)
then
    System.out.println($test.size());

此规则匹配,但是我现在想将POJO和POJO列表包装在具有键(字符串)和值(POJO或POJO列表)的容器中。我将命名包装类PojoWR和PojoLSWR。以下是与上述相同的规则,但是使用了包装器:

when
    $pojo:PojoWR("pojo.key";) and
    $pojoLs:PojoLSWR("pojols.key";) and
    $test:PojoLS() from collect (Pojo(this.equals($pojo.value)) from $pojoLs.value)
then
    System.out.println($test.size());

唯一的区别是,我使用包装器中的键匹配我的POJO和POJO列表,并使用.value从包装器访问我的值,否则逻辑与我所看到的相同。但是,列表不会在使用包装器的规则中填充(然后,在$ test.size()的情况下,该块将打印0,而在没有包装器的规则中,它应打印1)。

0 个答案:

没有答案