On 04/08/2010 09:34, Wolfgang Laun wrote:
The enum type defines three values as indication for an
activation's
cancellation.
WME_MODIFY, FILTER and CLEAR. Since I was missing something, I looked
and found that CLEAR is used for two very much different reasons:
- due to Agenda.clear()
- when deleting a rule.
Filter is the result of the agenda-filter causing the
activation to cancel:
if ( filter == null || filter.accept( item ) ) {
// fire it
fireActivation( item );
result = true;
} else {
// otherwise cancel it and try the next
final EventSupport eventsupport =
(EventSupport) this.workingMemory;
eventsupport.getAgendaEventSupport().fireActivationCancelled( item,
this.workingMemory,
ActivationCancelledCause.FILTER );
tryagain = true;
}
WME_MODIFY is the result of any wme action that causes an activation to
be cancelled.
CLEAR is the result of a forced cancellation of an activation, either be
explicitely calling clear or removing a rule.
I agree we could probably split that out and have a KB_MODIFY, so that
if the activation is cancelled as a result the rule being removed we get
a different event.
Mark
Is this intentional?
-W
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev