Package org.drools.kiesession.agenda
Class DefaultAgenda
- java.lang.Object
-
- org.drools.kiesession.agenda.DefaultAgenda
-
- All Implemented Interfaces:
Externalizable,Serializable,org.drools.core.common.ActivationsManager,org.drools.core.common.InternalAgenda,org.kie.api.runtime.rule.Agenda
- Direct Known Subclasses:
PartitionedDefaultAgenda
public class DefaultAgenda extends Object implements Externalizable, org.drools.core.common.InternalAgenda
Rule-firing Agenda.Since many rules may be matched by a single assertObject(...) all scheduled actions are placed into the
Agenda.While processing a scheduled action, it may update or retract objects in other scheduled actions, which must then be removed from the agenda. Non-invalidated actions are left on the agenda, and are executed in turn.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected intactivationCounterprotected static org.slf4j.Loggerlogprotected org.drools.core.common.InternalWorkingMemoryworkingMemoryWorking memory of this Agenda.
-
Constructor Summary
Constructors Constructor Description DefaultAgenda()DefaultAgenda(org.drools.core.impl.RuleBase kBase)DefaultAgenda(org.drools.core.impl.RuleBase kBase, boolean initMain)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivate()voidactivateRuleFlowGroup(String name)voidactivateRuleFlowGroup(String name, String processInstanceId, String nodeInstanceId)voidactivateRuleFlowGroup(org.drools.core.common.InternalRuleFlowGroup group, Object processInstanceId, String nodeInstanceId)voidaddEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)voidaddItemToActivationGroup(org.drools.core.common.AgendaItem activation)voidaddPropagation(org.drools.core.phreak.PropagationEntry propagationEntry)voidaddQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)voidcancelActivation(org.drools.core.rule.consequence.Activation activation)voidclear()voidclearAndCancel()voidclearAndCancelActivationGroup(String name)voidclearAndCancelActivationGroup(org.drools.core.common.InternalActivationGroup activationGroup)voidclearAndCancelAgendaGroup(String name)voidclearAndCancelRuleFlowGroup(String name)org.drools.core.common.AgendaItemcreateAgendaItem(org.drools.core.reteoo.RuleTerminalNodeLeftTuple rtnLeftTuple, int salience, org.drools.core.common.PropagationContext context, org.drools.core.phreak.RuleAgendaItem ruleAgendaItem, org.drools.core.common.InternalAgendaGroup agendaGroup)org.drools.core.phreak.RuleAgendaItemcreateRuleAgendaItem(int salience, org.drools.core.reteoo.PathMemory rs, org.drools.core.reteoo.TerminalNode rtn)voiddeactivate()booleandispose(org.drools.core.common.InternalWorkingMemory wm)protected voiddoRetract(org.drools.core.common.PropagationContext ectx)voidevaluateEagerList()voidevaluateQueriesForRule(org.drools.core.phreak.RuleAgendaItem item)voidexecuteFlush()voidexecuteTask(org.drools.core.phreak.ExecutableEntry executable)intfireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter, int fireLimit)intfireNextItem(org.kie.api.runtime.rule.AgendaFilter filter, int fireCount, int fireLimit)Fire the next scheduledAgendaitem, skipping items that are not allowed by the agenda filter.voidfireUntilHalt()voidfireUntilHalt(org.kie.api.runtime.rule.AgendaFilter agendaFilter)voidflushPropagations()Iterator<org.drools.core.phreak.PropagationEntry>getActionsIterator()org.drools.core.common.InternalActivationGroupgetActivationGroup(String name)Map<String,org.drools.core.common.InternalActivationGroup>getActivationGroupsMap()org.drools.core.common.ActivationsFiltergetActivationsFilter()org.drools.core.event.AgendaEventSupportgetAgendaEventSupport()org.kie.api.runtime.rule.AgendaGroupgetAgendaGroup(String name)org.drools.core.common.AgendaGroupsManagergetAgendaGroupsManager()StringgetFocusName()org.drools.core.rule.consequence.KnowledgeHelpergetKnowledgeHelper()org.drools.core.phreak.PropagationListgetPropagationList()org.drools.core.common.ReteEvaluatorgetReteEvaluator()org.drools.core.common.RuleFlowGroupgetRuleFlowGroup(String name)org.drools.core.common.InternalWorkingMemorygetWorkingMemory()voidhalt()voidhandleException(org.drools.core.rule.consequence.Activation activation, Exception e)booleanhasPendingPropagations()voidinternalHalt()booleanisAlive()booleanisDeclarativeAgenda()booleanisFiring()booleanisParallelAgenda()booleanisRuleActiveInRuleFlowGroup(String ruleflowGroupName, String ruleName, String processInstanceId)booleanisRuleInstanceAgendaItem(String ruleflowGroupName, String ruleName, String processInstanceId)voidnotifyWaitOnRest()org.drools.core.phreak.RuleAgendaItempeekNextRule()voidreadExternal(ObjectInput in)voidregisterExpiration(org.drools.core.common.PropagationContext ectx)voidremoveEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)voidremoveQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)voidreset()protected booleansameProcessInstance(String processInstanceId, org.kie.api.runtime.process.ProcessInstance value)voidsetActivationsFilter(org.drools.core.common.ActivationsFilter filter)voidsetFocus(String name)voidsetFocus(org.drools.core.common.PropagationContext ctx, String name)voidsetWorkingMemory(org.drools.core.common.InternalWorkingMemory workingMemory)intsizeOfRuleFlowGroup(String name)booleantryDeactivate()voidwriteExternal(ObjectOutput out)
-
-
-
Method Detail
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
createRuleAgendaItem
public org.drools.core.phreak.RuleAgendaItem createRuleAgendaItem(int salience, org.drools.core.reteoo.PathMemory rs, org.drools.core.reteoo.TerminalNode rtn)- Specified by:
createRuleAgendaItemin interfaceorg.drools.core.common.ActivationsManager
-
createAgendaItem
public org.drools.core.common.AgendaItem createAgendaItem(org.drools.core.reteoo.RuleTerminalNodeLeftTuple rtnLeftTuple, int salience, org.drools.core.common.PropagationContext context, org.drools.core.phreak.RuleAgendaItem ruleAgendaItem, org.drools.core.common.InternalAgendaGroup agendaGroup)- Specified by:
createAgendaItemin interfaceorg.drools.core.common.ActivationsManager
-
setWorkingMemory
public void setWorkingMemory(org.drools.core.common.InternalWorkingMemory workingMemory)
- Specified by:
setWorkingMemoryin interfaceorg.drools.core.common.InternalAgenda
-
getPropagationList
public org.drools.core.phreak.PropagationList getPropagationList()
-
getWorkingMemory
public org.drools.core.common.InternalWorkingMemory getWorkingMemory()
- Specified by:
getWorkingMemoryin interfaceorg.drools.core.common.InternalAgenda
-
addEagerRuleAgendaItem
public void addEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
- Specified by:
addEagerRuleAgendaItemin interfaceorg.drools.core.common.ActivationsManager
-
removeEagerRuleAgendaItem
public void removeEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
- Specified by:
removeEagerRuleAgendaItemin interfaceorg.drools.core.common.ActivationsManager
-
addQueryAgendaItem
public void addQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
- Specified by:
addQueryAgendaItemin interfaceorg.drools.core.common.ActivationsManager
-
removeQueryAgendaItem
public void removeQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
- Specified by:
removeQueryAgendaItemin interfaceorg.drools.core.common.ActivationsManager
-
addItemToActivationGroup
public void addItemToActivationGroup(org.drools.core.common.AgendaItem activation)
- Specified by:
addItemToActivationGroupin interfaceorg.drools.core.common.ActivationsManager
-
peekNextRule
public org.drools.core.phreak.RuleAgendaItem peekNextRule()
- Specified by:
peekNextRulein interfaceorg.drools.core.common.ActivationsManager
-
isDeclarativeAgenda
public boolean isDeclarativeAgenda()
- Specified by:
isDeclarativeAgendain interfaceorg.drools.core.common.InternalAgenda
-
isRuleActiveInRuleFlowGroup
public boolean isRuleActiveInRuleFlowGroup(String ruleflowGroupName, String ruleName, String processInstanceId)
- Specified by:
isRuleActiveInRuleFlowGroupin interfaceorg.drools.core.common.InternalAgenda
-
cancelActivation
public void cancelActivation(org.drools.core.rule.consequence.Activation activation)
- Specified by:
cancelActivationin interfaceorg.drools.core.common.ActivationsManager
-
setFocus
public void setFocus(String name)
- Specified by:
setFocusin interfaceorg.drools.core.common.InternalAgenda
-
setFocus
public void setFocus(org.drools.core.common.PropagationContext ctx, String name)
-
getReteEvaluator
public org.drools.core.common.ReteEvaluator getReteEvaluator()
- Specified by:
getReteEvaluatorin interfaceorg.drools.core.common.ActivationsManager
-
getAgendaGroupsManager
public org.drools.core.common.AgendaGroupsManager getAgendaGroupsManager()
- Specified by:
getAgendaGroupsManagerin interfaceorg.drools.core.common.ActivationsManager
-
getAgendaEventSupport
public org.drools.core.event.AgendaEventSupport getAgendaEventSupport()
- Specified by:
getAgendaEventSupportin interfaceorg.drools.core.common.ActivationsManager
-
getActivationGroupsMap
public Map<String,org.drools.core.common.InternalActivationGroup> getActivationGroupsMap()
- Specified by:
getActivationGroupsMapin interfaceorg.drools.core.common.InternalAgenda
-
getActivationGroup
public org.drools.core.common.InternalActivationGroup getActivationGroup(String name)
- Specified by:
getActivationGroupin interfaceorg.kie.api.runtime.rule.Agenda
-
getRuleFlowGroup
public org.drools.core.common.RuleFlowGroup getRuleFlowGroup(String name)
- Specified by:
getRuleFlowGroupin interfaceorg.kie.api.runtime.rule.Agenda
-
activateRuleFlowGroup
public void activateRuleFlowGroup(String name)
- Specified by:
activateRuleFlowGroupin interfaceorg.drools.core.common.InternalAgenda
-
activateRuleFlowGroup
public void activateRuleFlowGroup(String name, String processInstanceId, String nodeInstanceId)
- Specified by:
activateRuleFlowGroupin interfaceorg.drools.core.common.InternalAgenda
-
activateRuleFlowGroup
public void activateRuleFlowGroup(org.drools.core.common.InternalRuleFlowGroup group, Object processInstanceId, String nodeInstanceId)
-
clear
public void clear()
- Specified by:
clearin interfaceorg.kie.api.runtime.rule.Agenda
-
getAgendaGroup
public org.kie.api.runtime.rule.AgendaGroup getAgendaGroup(String name)
- Specified by:
getAgendaGroupin interfaceorg.kie.api.runtime.rule.Agenda
-
reset
public void reset()
- Specified by:
resetin interfaceorg.drools.core.common.InternalAgenda
-
clearAndCancel
public void clearAndCancel()
- Specified by:
clearAndCancelin interfaceorg.drools.core.common.InternalAgenda
-
clearAndCancelAgendaGroup
public void clearAndCancelAgendaGroup(String name)
- Specified by:
clearAndCancelAgendaGroupin interfaceorg.drools.core.common.InternalAgenda
-
clearAndCancelActivationGroup
public void clearAndCancelActivationGroup(String name)
- Specified by:
clearAndCancelActivationGroupin interfaceorg.drools.core.common.ActivationsManager- Specified by:
clearAndCancelActivationGroupin interfaceorg.drools.core.common.InternalAgenda
-
clearAndCancelActivationGroup
public void clearAndCancelActivationGroup(org.drools.core.common.InternalActivationGroup activationGroup)
- Specified by:
clearAndCancelActivationGroupin interfaceorg.drools.core.common.ActivationsManager
-
clearAndCancelRuleFlowGroup
public void clearAndCancelRuleFlowGroup(String name)
- Specified by:
clearAndCancelRuleFlowGroupin interfaceorg.drools.core.common.InternalAgenda
-
fireNextItem
public int fireNextItem(org.kie.api.runtime.rule.AgendaFilter filter, int fireCount, int fireLimit)Fire the next scheduledAgendaitem, skipping items that are not allowed by the agenda filter.- Specified by:
fireNextItemin interfaceorg.drools.core.common.InternalAgenda- Returns:
- true if an activation was fired. false if no more activations to fire
- Throws:
org.drools.core.rule.consequence.ConsequenceException- If an error occurs while firing an agenda item.
-
evaluateEagerList
public void evaluateEagerList()
- Specified by:
evaluateEagerListin interfaceorg.drools.core.common.ActivationsManager
-
evaluateQueriesForRule
public void evaluateQueriesForRule(org.drools.core.phreak.RuleAgendaItem item)
- Specified by:
evaluateQueriesForRulein interfaceorg.drools.core.common.ActivationsManager
-
sizeOfRuleFlowGroup
public int sizeOfRuleFlowGroup(String name)
- Specified by:
sizeOfRuleFlowGroupin interfaceorg.drools.core.common.InternalAgenda
-
isRuleInstanceAgendaItem
public boolean isRuleInstanceAgendaItem(String ruleflowGroupName, String ruleName, String processInstanceId)
- Specified by:
isRuleInstanceAgendaItemin interfaceorg.drools.core.common.InternalAgenda
-
sameProcessInstance
protected boolean sameProcessInstance(String processInstanceId, org.kie.api.runtime.process.ProcessInstance value)
-
getFocusName
public String getFocusName()
- Specified by:
getFocusNamein interfaceorg.drools.core.common.InternalAgenda
-
fireUntilHalt
public void fireUntilHalt()
- Specified by:
fireUntilHaltin interfaceorg.drools.core.common.InternalAgenda
-
fireUntilHalt
public void fireUntilHalt(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
- Specified by:
fireUntilHaltin interfaceorg.drools.core.common.InternalAgenda
-
fireAllRules
public int fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter, int fireLimit)- Specified by:
fireAllRulesin interfaceorg.drools.core.common.ActivationsManager- Specified by:
fireAllRulesin interfaceorg.drools.core.common.InternalAgenda
-
isFiring
public boolean isFiring()
- Specified by:
isFiringin interfaceorg.drools.core.common.ActivationsManager
-
executeTask
public void executeTask(org.drools.core.phreak.ExecutableEntry executable)
- Specified by:
executeTaskin interfaceorg.drools.core.common.ActivationsManager
-
executeFlush
public void executeFlush()
- Specified by:
executeFlushin interfaceorg.drools.core.common.InternalAgenda
-
activate
public void activate()
- Specified by:
activatein interfaceorg.drools.core.common.InternalAgenda
-
deactivate
public void deactivate()
- Specified by:
deactivatein interfaceorg.drools.core.common.InternalAgenda
-
tryDeactivate
public boolean tryDeactivate()
- Specified by:
tryDeactivatein interfaceorg.drools.core.common.InternalAgenda
-
halt
public void halt()
- Specified by:
haltin interfaceorg.drools.core.common.InternalAgenda
-
dispose
public boolean dispose(org.drools.core.common.InternalWorkingMemory wm)
- Specified by:
disposein interfaceorg.drools.core.common.InternalAgenda
-
isAlive
public boolean isAlive()
- Specified by:
isAlivein interfaceorg.drools.core.common.InternalAgenda
-
internalHalt
public void internalHalt()
-
setActivationsFilter
public void setActivationsFilter(org.drools.core.common.ActivationsFilter filter)
- Specified by:
setActivationsFilterin interfaceorg.drools.core.common.InternalAgenda
-
getActivationsFilter
public org.drools.core.common.ActivationsFilter getActivationsFilter()
- Specified by:
getActivationsFilterin interfaceorg.drools.core.common.ActivationsManager
-
handleException
public void handleException(org.drools.core.rule.consequence.Activation activation, Exception e)- Specified by:
handleExceptionin interfaceorg.drools.core.common.ActivationsManager
-
getKnowledgeHelper
public org.drools.core.rule.consequence.KnowledgeHelper getKnowledgeHelper()
- Specified by:
getKnowledgeHelperin interfaceorg.drools.core.common.ActivationsManager
-
addPropagation
public void addPropagation(org.drools.core.phreak.PropagationEntry propagationEntry)
- Specified by:
addPropagationin interfaceorg.drools.core.common.ActivationsManager
-
flushPropagations
public void flushPropagations()
- Specified by:
flushPropagationsin interfaceorg.drools.core.common.ActivationsManager
-
notifyWaitOnRest
public void notifyWaitOnRest()
- Specified by:
notifyWaitOnRestin interfaceorg.drools.core.common.InternalAgenda
-
getActionsIterator
public Iterator<org.drools.core.phreak.PropagationEntry> getActionsIterator()
- Specified by:
getActionsIteratorin interfaceorg.drools.core.common.InternalAgenda
-
hasPendingPropagations
public boolean hasPendingPropagations()
- Specified by:
hasPendingPropagationsin interfaceorg.drools.core.common.InternalAgenda
-
registerExpiration
public void registerExpiration(org.drools.core.common.PropagationContext ectx)
- Specified by:
registerExpirationin interfaceorg.drools.core.common.ActivationsManager
-
doRetract
protected void doRetract(org.drools.core.common.PropagationContext ectx)
-
isParallelAgenda
public boolean isParallelAgenda()
- Specified by:
isParallelAgendain interfaceorg.drools.core.common.InternalAgenda
-
-