If you want the "engine to see" your changes, in a way you affect other
rules, you must call update( object ) for the object you are changing.
Otherwise, the change will happen to the original object, but not to the
shadow proxy that the engine uses to ensure consistency.
[]s
Edson
2007/8/22, pentarious <cristiano.giuffrida(a)gmail.com>:
Ok, I'm still working on that, I'll publish my solution asap. In the
meantime
it turns out our requirements need something more than that. We have an
ordered list of beans (items) and we have to be able to modify a specific
subset of the list (adding a discount). Now I tried to solve this problem
by
working directly on the list of items. But I can't understand why this
doesn't work:
when
$itemList : ArrayList() from collect( Item( category == "VIDEO" ) )
then
ItemDiscount disc = new ItemDiscount(10);
$myFirstItem = (Item)$itemList.get(0);
$mySecondItem = (Item)$itemList.get(1);
$myFirstItem.addDiscount(disc);
$mySecondItem.addDiscount(disc);
After executing this rule it's like nothing happened! I mean no discount
has
been added to the two items! The problem seems to be related to extracting
items from the list. Apparently, every time we get an item from the list,
it
looses its link with the original item (I don't know if it's a copy of the
original item or whatever), so that every update doesn't affect the
original
item any more. But of course that's what we're interested in! We want to
modify original items in the rule session. Am I missing something? Or Is
it
a bug?
Regards,
CG
Edson Tirelli-3 wrote:
>
> Please, share with us! Send to the list!
>
> Edson
>
> 2007/8/21, pentarious <cristiano.giuffrida(a)gmail.com>:
>>
>>
>> I found an interesting implementation to do that. If anyone is
interested
>> I
>> could share my solution.
>>
>> Regards,
>>
>> CG
>>
>>
>> Mark Proctor wrote:
>> >
>> > There is no supported way to do this. You could use an inline-eval
>> > against a global, but that is very clunkey. However it does seem like
a
>> > good feature idea for a future release, open a jira and I'll look
into
>> > getting it included.
>> >
>> > Mark
>> > pentarious wrote:
>> >> Does anyone know a method to limit the number of results from a
>> collect
>> >> statement? I was just wondering how to do something like this:
>> >> $myList : List() from collect( MyObject(myField ==
"something") )
>> limit
>> 3
>> >> //it should put in $myList just the first 3 objects retrieved
>> >> I'm quite sure there is nothing in Drools which can natively
support
>> >> something like that. So, how to do that, if needed? I tried this,
but
>> it
>> >> seems not to be working (I can't understand why, though):
>> >> $myList : List() from collect( MyObject(myField ==
"something") )
>> >> $myObject : MyObject() from $myList
>> >> eval( $myList.indexOf($myObject) < 3 )
>> >> Indeed, it doesn't work because the link beetween $myList and
>> $myObject
>> >> seems to be released during any execution of the rule (In fact
>> >> $myList.contains($myObject) returns false! Again, I can't
understand
>> >> why...)
>> >>
>> >> Any advice would be really appreciated!
>> >>
>> >> Regards,
>> >>
>> >> CG
>> >>
>> >
>> > _______________________________________________
>> > rules-users mailing list
>> > rules-users(a)lists.jboss.org
>> >
https://lists.jboss.org/mailman/listinfo/rules-users
>> >
>> >
>>
>> --
>> View this message in context:
>>
http://www.nabble.com/How-to-limit-results-from-a-collect-statement-tf423...
>> 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
>>
>
>
>
> --
> Edson Tirelli
> Software Engineer - JBoss Rules Core Developer
> Office: +55 11 3529-6000
> Mobile: +55 11 9287-5646
> JBoss, a division of Red Hat @
www.jboss.com
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
View this message in context:
http://www.nabble.com/How-to-limit-results-from-a-collect-statement-tf423...
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
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @