Sorry I replied to the wrong message, doh! So here it is again.
I've thought about some callback mechanism that is executed when a rule
is no longer true, the problem I have is which variable changed to make
the rule no longer true and how do I expose the bound variables to the
user, especially if the rule is no longer true due to a retraction, and
ofcourse I need to figure our the DRL syntax that makes sense.
I've thought about doing it as a sort of logical closure, so you have to
declare the data:
insertLogicalClosure( new LogicalClosure() {
execute() {.......}
} )
Not sure how to make the data accessible, maybe the user should have to
populate the map. Anyway idea is in the same way that a logical insert
is executed when the rule is true, the logical closure/method is executed.
So if someone has some time and fun, maybe they would work on this and
submit a patch :)
Claudio Rainoldi wrote:
Hi everyone,
isn'it there a way to find when a rule isn't more active.
For example if i have this rule:
rule "light 2 on"
dialect "java"
when
Light (name=="0/0/2", actualvalue=="1");
then
System.out.println("luce 2 on");
end
when someone turn on the light 2 i discover that the rule is fired
using an Agenda Event Listener and the method afterActivationFired;
But when someone turn off the ligth isn't there a similar way to
discover that the rule "light 2 on" isn't more active.
My only solution is to use the dual rule:
rule "light 2 on_dual"
dialect "java"
when
not (Light (name=="0/0/2", actualvalue=="1"));
then
System.out.println("luce 2 off");
end
Isn't there a more sample way to do this?
Thanks in advance.
Cla
------------------------------------------------------------------------
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users