public void activateRuleFlowGroup( final InternalRuleFlowGroup group, long processInstanceId, String nodeInstanceId) { ((EventSupport) this.workingMemory) .getAgendaEventSupport() .fireBeforeRuleFlowGroupActivated(group, this.workingMemory); group.setActive(true); group.hasRuleFlowListener(true); if (!StringUtils.isEmpty(nodeInstanceId)) { group.addNodeInstance(processInstanceId, nodeInstanceId); group.setActive(true); } setFocus((InternalAgendaGroup) group); ((EventSupport) this.workingMemory) .getAgendaEventSupport() .fireAfterRuleFlowGroupActivated(group, this.workingMemory); }
public void deactivateRuleFlowGroup(final InternalRuleFlowGroup group) { if (!group.isRuleFlowListener()) { return; } ((EventSupport) this.workingMemory) .getAgendaEventSupport() .fireBeforeRuleFlowGroupDeactivated(group, this.workingMemory); while (this.focusStack.remove(group)) ; // keep removing while group is on the stack group.setActive(false); innerDeactiveRuleFlowGroup(group); }