[rules-users] Call class method from LHS of a rule

Wolfgang Laun wolfgang.laun at gmail.com
Mon Jan 4 07:39:58 EST 2010


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 at 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.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100104/45498724/attachment.html 


More information about the rules-users mailing list