2010/1/4 Esteban Aliverti <esteban.aliverti(a)gmail.com>
Using Wolfgang's inline eval epression, I get the following
error: "Cannot
use this in a static context" when compiling the rule. I changed
"this" by "$c" and it works. I don't know why we are in a static
context.
Strange. Most likely the compiler converts the inline eval to an eval CE,
where you can't have "this".
I have occasionally used s.th. like
$foo : Foo( $bar : bar )
Bar( this == $bar )
which goaded me into thinking that this.method() should work in an inline
eval.
Thanks for checking this, though!
-W
The rule that worked for me is:
Rule "Rule1"
when
$c:Cheese(type == "chedar", eval($c.existsInShop ("shopName"))
then
System.out.println("Rule1 is fired");
end
I attached a working test case. Change $c to "*this" *in rule's condition
and you will see the error I mentioned.
Best,
2010/1/4 Wolfgang Laun <wolfgang.laun(a)gmail.com>
> What you need is called "inline eval expression" (see the Drools Expert
> manual),
> or an eval conditional element. The first one might be written as:
>
> $c:Cheese(type == "chedar", eval( this.existsInShop("shopName") )
)
>
> -W
>
>
>
> On Mon, Jan 4, 2010 at 12:49 PM, orchid <maya.pollack(a)gmail.com> wrote:
>
>>
>> Hi All,
>>
>> I'm trying to call a class method from the LHS of a rule in the following
>> way:
>>
>> public class Cheese{
>> private string type;
>> //setters and getters
>> public boolean existsInShop(String shop){
>> ...
>> return true;
>> }
>> }
>>
>> I would like to call the method "existsInShop" from a rule:
>>
>> Rule "Rule1"
>> when
>> $c:Cheese(type == "chedar", existsInShop "shopName")
>> then
>> System.out.println("Rule1 is fired");
>> end
>>
>> I get the compilation error: "no viable alternative at input
"shopName"
>> in
>> rule "Rule1" in pattern document". How can I call the method from
the
>> rule?
>>
>> Thanks in advance.
>>
>>
>>
>> --
>> View this message in context:
>>
http://n3.nabble.com/Call-class-method-from-LHS-of-a-rule-tp108383p108383...
>> Sent from the Drools - User mailing list archive at
Nabble.com.
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Esteban Aliverti
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users