On 4 January 2011 11:15, Gabor Szokoli <szocske@gmail.com> wrote:
Hi,

Purely for educational purposes I am trying to figure out how this
will work when multiple Sale instances share the same "type" string.

It seems to me that under the default "identity" assertion mode of the
Working Memory, as many SaleType instances would be maintained as
there are unexpired Sale events. In the degenerate case of all n Sale
instances sharing the same type string, rules that bind a SaleType
variable on their LHS should fire n times more than expected.

This is n - 1 times :-)
 
The fix is simple:

when
     Sale( $type : type )
     not SaleType( type == $type )
then
     insertLogical( new SaleType( $type ) );

-W


Am I missing something?

On the other hand "declare" creates a constructor with parameters? Neat!

On Mon, Jan 3, 2011 at 4:28 PM, Edson Tirelli <ed.tirelli@gmail.com> wrote:
>
> declare SaleType
>    type : String
> end
>
> rule "register types"
> when
>     Sale( $type : type )
> then
>     insertLogical( new SaleType( $type ) );
> end
>

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users