[rules-users] Tuples in Agenda Item.

Wolfgang Laun wolfgang.laun at gmail.com
Fri Apr 9 01:44:32 EDT 2010


Regarding Issue 1:
Even if you do have different objects of ConcreteType1, the rule is fired
for each of them, since each of these is equal to itself in terms of the
BaseType.

I also fail to understand Issue 2. But perhaps your misconception about base
type and subtype matching is also responsible for that.

Rule "s" looks strange for more than one reason. What is the
DroolsWorkingMemory() pattern supposed to achieve? Is it a general trigger
so that the rule only fires if one such object is present?

Leaving base and extended types aside, testing for the equality of two
objects of the same type must be done much more carefully. Assuming three
objects of TypeX, x1, x2, x3 with x1.equals(x2) and NOT x1.equals(x3) and a
rule like this:

rule "xxx"
when
   o1 : TypeX()
   o2 : TypeX()
   eval( o1.equals( o2 ) )
then
  ...

This rule will fire 5 times, with the following activations:
   <x1,x1>, <x2,x2>, <x3,x3>, <x1,x2>, <x2,x1>.

Using, e.g.,
   o2:TypeX( this != o1 )
reduces this to two firings.

-W


2010/4/9 Rajnikant Gupta <capricorn.raj at gmail.com>

> Hi,
> **
> Sorry for not being very clear. Here's the rule which I run:
> **
> **
> *package rr*
> *import com.thirdpillar.common.util.DroolsWorkingMemoryimport
> com.parentchild.BaseType*
> *import com.parentchild.ConcreteType1 *
> **
> *rule "s"*
> *no-loop true *
> *salience 999999 *
> **
> *when*
> *DroolsWorkingMemory:DroolsWorkingMemory()*
> *BaseType:BaseType()*
> *ConcreteType1:ConcreteType1()*
> *eval (*
> *(*
> *((BaseType.equals(ConcreteType1)))*
> *)*
> *)*
> *then*
> *BaseType.setString("Blah Blah!");*
> *end *
>
> where *ConcreteType1 *extends *BaseType. *
> **
> *Issues:*
> 1. Even for different values for fields in *ConcreteType1* and *BaseType,
> *the rule gets fired.
>
> 2. I also do audit for the rules for which i need tuples so that I can
> extract the objects out of it and evaluate the expression against Mvel. But
> the tuple shows me only the *ConcreteType1* instance not the *BaseType. *Thus
> getting wrong audit.
>
> Regards,
>
> Rajnikant Gupta
> Sr. Software Engineer
> GlobalLogic,Noida
> 09899530562
>
> http://rkthinks.wordpress.com/
>
>
> 2010/4/9 Greg Barton <greg_barton at yahoo.com>
>
>   We need some rule code to get a better idea of what's going on.  Can you
>> post some?
>>
>> --- On *Thu, 4/8/10, Rajnikant Gupta <capricorn.raj at gmail.com>* wrote:
>>
>>
>> From: Rajnikant Gupta <capricorn.raj at gmail.com>
>> Subject: [rules-users] Tuples in Agenda Item.
>> To: rules-users at lists.jboss.org
>> Date: Thursday, April 8, 2010, 1:36 PM
>>
>>
>>
>> Hi,
>>
>> I have a doubt regarding tuples. I created a rule using complex types
>> objects. I am comparing two complex type objecs which have parent-child
>> relationship eg. "ParentType.equals(ChildType)". I expect this to follow
>> java rule which allows such comparision. Now when I run the rules with
>> different values for fields in ParentType and ChildType (which means the
>> rule should fail) to my surprise it evals to TRUE. Also upon inspection, the
>> tuple shows me only the ChildType instance not the ParentType.
>>
>> I would appreciate any help on this.
>>
>>
>> Regards,
>>
>> Rajnikant
>>
>> -----Inline Attachment Follows-----
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org<http://mc/compose?to=rules-users@lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> 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/20100409/a662e6a7/attachment.html 


More information about the rules-users mailing list