Search in sources :

Example 1 with ActivationGroupImpl

use of org.drools.core.common.ActivationGroupImpl in project drools by kiegroup.

the class ActivationsManagerImpl method addItemToActivationGroup.

@Override
public void addItemToActivationGroup(AgendaItem activation) {
    if (activation.isRuleAgendaItem()) {
        throw new UnsupportedOperationException("defensive programming, making sure this isn't called, before removing");
    }
    String group = activation.getRule().getActivationGroup();
    if (!StringUtils.isEmpty(group)) {
        InternalActivationGroup actgroup = this.activationGroups.computeIfAbsent(group, k -> new ActivationGroupImpl(this, k));
        // Don't allow lazy activations to activate, from before it's last trigger point
        if (actgroup.getTriggeredForRecency() != 0 && actgroup.getTriggeredForRecency() >= activation.getPropagationContext().getFactHandle().getRecency()) {
            return;
        }
        actgroup.addActivation(activation);
    }
}
Also used : ActivationGroupImpl(org.drools.core.common.ActivationGroupImpl) InternalActivationGroup(org.drools.core.spi.InternalActivationGroup)

Aggregations

ActivationGroupImpl (org.drools.core.common.ActivationGroupImpl)1 InternalActivationGroup (org.drools.core.spi.InternalActivationGroup)1