/ syntaxe des règles / drools pour les classes imbriquées - java, eclipse, drools

La syntaxe des règles de drools pour les classes imbriquées - java, eclipse, drools

Newbie question sur bave. J'essaie d'accéder à la classe Java suivante dans le fichier de règles.

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
}

Dans le fichier de règles, je souhaite accéder au membre bar.

Jusqu'ici c'est ce que j'ai: -

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

Pour la règle ci-dessus, j'obtiens cette erreur - "BuildError: Unable to resolve ObjectType A.B". J'ai aussi essayé d'utiliser A.getB() et cela n'a pas aidé non plus. Une idée de ce que ça devrait être? J'utilise le plugin Eclipse Drools si cela compte.

J'ai regardé les règles de jboss docs mais ils ne couvrent pas très bien la syntaxe. Est-ce que quelqu'un connaît des liens sur lesquels je peux chercher la syntaxe de bave et comment ça ressemble à ci-dessus?

Réponses:

6 pour la réponse № 1

C'est probablement mieux:

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

En DRL, == veux dire équivaut à, ne pas même. Avec $varB : b vous faites quelque chose comme B varB = a.getB();


0 pour la réponse № 2

essayez de cette façon:

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