2011-04-05 82 views
0

关于流口水的新手问题。我正在尝试访问规则文件中的以下Java类。drools嵌套类的规则语法

Class A{ 
    private String foo; 
    private SomeClass B; 
    //getter setter for foo and b 
} 
Class B{ 
    private String bar; 
    private Integer value; 
    //getter setter for bar and value 
} 

在规则文件中,我想访问成员bar

到目前为止,这是我所: -

package demo; 
import my.test.A; 
import my.test.B; 

rule "Rule1" 
    when 
     $varB : A.B(bar.equals("hello")) 
    then 
     $varB.setValue(1); 
     update($varB); 
end 

对于上述规则我得到这个错误 - "BuildError: Unable to resolve ObjectType A.B"。我也尝试使用A.getB(),这也没有帮助。任何想法它应该是什么?如果有问题,我正在使用eclipse drools插件。

我已经看过jboss规则docs,但它们没有涵盖那些很好的语法。有谁知道链接,我可以查找drools语法,以及如何像上面一样?

回答

6

这可能是更好:

A(b.bar == "hello", $varB : b) 

在DRL,==意味着等于,不相同。 随着$varB : b你做一些像B varB = a.getB();

+0

+1:好知道。你知道任何学习drools规则语法的好链接吗? – CoolBeans 2011-04-06 13:54:46

+1

您可以检查Drools示例的语法提示。 – 2011-04-07 10:56:23

0

试试这个方法:

$varB : A(B.bar.equals("hello")) 
+0

谢谢!你怎么知道这件事的?是否有你知道的语法查找链接? – CoolBeans 2011-04-05 22:03:58

+0

我不知道Drools,我猜对了:) – smas 2011-04-05 22:05:34

+0

LOL ..很好猜:) – CoolBeans 2011-04-05 22:08:23