Yes i know this. I've tried to use activationCancelled method to
discover when a rule isn't more true but it doesn't work. The code was
public static class FiredRulesListener extends
DefaultAgendaEventListener static class FiredRulesListener extends
DefaultAgendaEventListener
{
List<Rule> firedRules = new ArrayList<Rule>();
public List<Rule> getFiredRules() List<Rule> getFiredRules()
{return this.firedRules;}
@Override
publicvoid afterActivationFired(AfterActivationFiredEvent event,
WorkingMemory workingMemory)
{Rule rule = event.getActivation().getRule();
if (!this.firedRules.contains(rule)) this.firedRules.add(rule);
(!this.firedRules.contains(rule)) this.firedRules.add(rule);
}
@Override
public void activationCancelled (ActivationCancelledEvent event,
WorkingMemory workingMemory)
{
System.out.println("i never see this message");
Rule rule= event.getActivation().getRule();
this.firedRules.remove(rule);
}
but when i turn off the ligth the method activationCancelled wasn't
never called
2008/7/29, Edson Tirelli <tirelli(a)post.com>:
The same interface you are using (AgendaEventListener) has 2 methods for activations
created and canceled:
void activationCreated(ActivationCreatedEvent event,
WorkingMemory workingMemory);
void activationCancelled(ActivationCancelledEvent event,
WorkingMemory workingMemory);
[]s
Edson
2008/7/29 Claudio Rainoldi <claudio.rainoldi(a)gmail.com>
>
>
> 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
>
>
--
Edson Tirelli
JBoss Drools Core Development
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