Слюни правила синтаксиса для вложенных классов - PullRequest
0 голосов
/ 06 апреля 2011

Вопрос новичка на слюни.Я пытаюсь получить доступ к следующему классу Java в файле правил.

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 и как, как выше?

Ответы [ 2 ]

6 голосов
/ 06 апреля 2011

Это, вероятно, лучше:

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

В ДХО == означает равно , а не то же самое . С $varB : b вы делаете что-то вроде B varB = a.getB();

0 голосов
/ 06 апреля 2011

попробуйте так:

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