|
Drools :: ReteOO 6.2.0.CR2 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.drools.reteoo.common.ReteAgenda<M>
public class ReteAgenda<M extends org.drools.core.beliefsystem.ModedAssertion<M>>
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.
| Nested Class Summary | |
|---|---|
static class |
ReteAgenda.DummyGarbageCollector
|
| Field Summary | |
|---|---|
protected int |
activationCounter
|
protected AtomicBoolean |
halt
|
protected org.drools.core.spi.KnowledgeHelper |
knowledgeHelper
|
protected static org.slf4j.Logger |
log
|
protected org.drools.core.common.InternalWorkingMemory |
workingMemory
Working memory of this Agenda. |
| Constructor Summary | |
|---|---|
ReteAgenda()
|
|
ReteAgenda(org.drools.core.impl.InternalKnowledgeBase kBase)
Construct. |
|
ReteAgenda(org.drools.core.impl.InternalKnowledgeBase kBase,
boolean initMain)
Construct. |
|
| Method Summary | |
|---|---|
void |
activateRuleFlowGroup(org.drools.core.common.InternalRuleFlowGroup group,
long processInstanceId,
String nodeInstanceId)
|
void |
activateRuleFlowGroup(String name)
|
void |
activateRuleFlowGroup(String name,
long processInstanceId,
String nodeInstanceId)
|
boolean |
addActivation(org.drools.core.common.AgendaItem activation)
|
void |
addActivation(org.drools.core.common.AgendaItem item,
boolean notify)
|
void |
addAgendaGroup(org.drools.core.spi.AgendaGroup agendaGroup)
|
void |
addAgendaGroupOnStack(org.drools.core.spi.AgendaGroup agendaGroup)
|
void |
addAgendaItemToGroup(org.drools.core.common.AgendaItem item)
|
void |
addEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
|
void |
addItemToActivationGroup(org.drools.core.common.AgendaItem item)
If the item belongs to an activation group, add it |
void |
addQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
|
int |
agendaSize()
|
void |
cancelActivation(org.drools.core.reteoo.LeftTuple leftTuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.common.InternalWorkingMemory workingMemory,
org.drools.core.spi.Activation activation,
org.drools.core.reteoo.TerminalNode rtn)
|
void |
clear()
|
void |
clearAndCancel()
|
void |
clearAndCancelActivationGroup(org.drools.core.spi.InternalActivationGroup activationGroup)
|
void |
clearAndCancelActivationGroup(String name)
|
void |
clearAndCancelAgendaGroup(org.drools.core.spi.AgendaGroup agendaGroup)
|
void |
clearAndCancelAgendaGroup(String name)
|
void |
clearAndCancelAndCancel(org.drools.core.spi.RuleFlowGroup ruleFlowGroup)
|
void |
clearAndCancelRuleFlowGroup(String name)
|
void |
clearAndCancelStagedActivations()
|
boolean |
continueFiring(int fireLimit)
|
boolean |
createActivation(org.drools.core.reteoo.LeftTuple tuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.common.InternalWorkingMemory workingMemory,
org.drools.core.reteoo.TerminalNode rtn)
|
org.drools.core.common.AgendaItem |
createAgendaItem(org.drools.core.reteoo.LeftTuple tuple,
int salience,
org.drools.core.spi.PropagationContext context,
org.drools.core.reteoo.TerminalNode rtn,
org.drools.core.phreak.RuleAgendaItem ruleAgendaItem,
org.drools.core.common.InternalAgendaGroup agendaGroup)
|
boolean |
createPostponedActivation(org.drools.core.reteoo.LeftTuple tuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.common.InternalWorkingMemory workingMemory,
org.drools.core.reteoo.TerminalNode rtn)
|
org.drools.core.phreak.RuleAgendaItem |
createRuleAgendaItem(int salience,
org.drools.core.reteoo.PathMemory rs,
org.drools.core.reteoo.TerminalNode rtn)
|
org.drools.core.common.ScheduledAgendaItem |
createScheduledAgendaItem(org.drools.core.reteoo.LeftTuple tuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.reteoo.TerminalNode rtn,
org.drools.core.common.InternalAgendaGroup agendaGroup)
|
void |
deactivateRuleFlowGroup(org.drools.core.common.InternalRuleFlowGroup group)
|
void |
deactivateRuleFlowGroup(String name)
|
void |
evaluateEagerList()
|
void |
fireActivation(org.drools.core.spi.Activation activation)
Fire this item. |
int |
fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter,
int fireLimit)
|
int |
fireNextItem(org.kie.api.runtime.rule.AgendaFilter filter,
int fireCount,
int fireLimit)
Fire the next scheduled Agenda item, skipping items
that are not allowed by the agenda filter. |
boolean |
fireTimedActivation(org.drools.core.spi.Activation activation,
boolean saveForLater)
|
void |
fireUntilHalt()
|
void |
fireUntilHalt(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
|
int |
focusStackSize()
|
org.drools.core.spi.InternalActivationGroup |
getActivationGroup(String name)
|
Map<String,org.drools.core.spi.InternalActivationGroup> |
getActivationGroupsMap()
|
org.drools.core.spi.Activation[] |
getActivations()
|
org.drools.core.common.ActivationsFilter |
getActivationsFilter()
|
org.drools.core.spi.AgendaGroup |
getAgendaGroup(String name)
|
org.drools.core.spi.AgendaGroup |
getAgendaGroup(String name,
org.drools.core.impl.InternalKnowledgeBase kBase)
|
org.drools.core.spi.AgendaGroup[] |
getAgendaGroups()
|
Map<String,org.drools.core.common.InternalAgendaGroup> |
getAgendaGroupsMap()
|
org.drools.core.spi.ConsequenceExceptionHandler |
getConsequenceExceptionHandler()
|
org.drools.core.spi.AgendaGroup |
getCurrentAgendaGroup()
|
org.drools.core.spi.AgendaGroup |
getFocus()
|
String |
getFocusName()
|
org.drools.core.common.GarbageCollector |
getGarbageCollector()
|
org.drools.core.common.InternalAgendaGroup |
getMainAgendaGroup()
|
long |
getNextActivationCounter()
|
org.drools.core.common.InternalAgendaGroup |
getNextFocus()
|
org.drools.core.spi.RuleFlowGroup |
getRuleFlowGroup(String name)
|
org.drools.core.spi.Activation[] |
getScheduledActivations()
|
org.drools.core.util.LinkedList<org.drools.core.common.ScheduledAgendaItem<M>> |
getScheduledActivationsLinkedList()
|
org.drools.core.spi.AgendaGroup[] |
getStack()
|
LinkedList<org.drools.core.spi.AgendaGroup> |
getStackList()
|
org.drools.core.spi.InternalActivationGroup |
getStageActivationsGroup()
|
org.drools.core.WorkingMemory |
getWorkingMemory()
|
void |
halt()
|
void |
insertAndStageActivation(org.drools.core.common.AgendaItem activation)
|
boolean |
isDeclarativeAgenda()
|
boolean |
isFireUntilHalt()
|
boolean |
isRuleActiveInRuleFlowGroup(String ruleflowGroupName,
String ruleName,
long processInstanceId)
|
boolean |
isRuleInstanceAgendaItem(String ruleflowGroupName,
String ruleName,
long processInstanceId)
|
void |
modifyActivation(org.drools.core.common.AgendaItem activation,
boolean previouslyActive)
|
void |
notifyHalt()
|
org.drools.core.phreak.RuleAgendaItem |
peekNextRule()
|
void |
readExternal(ObjectInput in)
|
void |
removeActivation(org.drools.core.common.AgendaItem activation)
|
void |
removeEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
|
void |
removeQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
|
void |
removeScheduleItem(org.drools.core.common.ScheduledAgendaItem item)
|
void |
scheduleItem(org.drools.core.common.ScheduledAgendaItem item,
org.drools.core.common.InternalWorkingMemory wm)
Schedule an agenda item for delayed firing. |
void |
setActivationsFilter(org.drools.core.common.ActivationsFilter filter)
|
void |
setCurrentAgendaGroup(org.drools.core.common.InternalAgendaGroup agendaGroup)
|
boolean |
setFocus(org.drools.core.spi.AgendaGroup agendaGroup)
|
void |
setFocus(org.drools.core.spi.PropagationContext ctx,
String name)
|
void |
setFocus(String name)
|
void |
setWorkingMemory(org.drools.core.common.InternalWorkingMemory workingMemory)
|
int |
sizeOfRuleFlowGroup(String name)
|
void |
stageLeftTuple(org.drools.core.phreak.RuleAgendaItem ruleAgendaItem,
org.drools.core.common.AgendaItem justified)
|
int |
unstageActivations()
|
void |
writeExternal(ObjectOutput out)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final transient org.slf4j.Logger log
protected org.drools.core.common.InternalWorkingMemory workingMemory
protected org.drools.core.spi.KnowledgeHelper knowledgeHelper
protected volatile AtomicBoolean halt
protected int activationCounter
| Constructor Detail |
|---|
public ReteAgenda()
public ReteAgenda(org.drools.core.impl.InternalKnowledgeBase kBase)
kBase - The InternalKnowledgeBase of this agenda.
public ReteAgenda(org.drools.core.impl.InternalKnowledgeBase kBase,
boolean initMain)
kBase - The InternalKnowledgeBase of this agenda.initMain - Flag to initialize the MAIN agenda group| Method Detail |
|---|
public org.drools.core.phreak.RuleAgendaItem createRuleAgendaItem(int salience,
org.drools.core.reteoo.PathMemory rs,
org.drools.core.reteoo.TerminalNode rtn)
createRuleAgendaItem in interface org.drools.core.common.InternalAgendapublic long getNextActivationCounter()
getNextActivationCounter in interface org.drools.core.common.InternalAgenda
public org.drools.core.common.AgendaItem createAgendaItem(org.drools.core.reteoo.LeftTuple tuple,
int salience,
org.drools.core.spi.PropagationContext context,
org.drools.core.reteoo.TerminalNode rtn,
org.drools.core.phreak.RuleAgendaItem ruleAgendaItem,
org.drools.core.common.InternalAgendaGroup agendaGroup)
createAgendaItem in interface org.drools.core.common.InternalAgenda
public org.drools.core.common.ScheduledAgendaItem createScheduledAgendaItem(org.drools.core.reteoo.LeftTuple tuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.reteoo.TerminalNode rtn,
org.drools.core.common.InternalAgendaGroup agendaGroup)
createScheduledAgendaItem in interface org.drools.core.common.InternalAgendapublic void setWorkingMemory(org.drools.core.common.InternalWorkingMemory workingMemory)
setWorkingMemory in interface org.drools.core.common.InternalAgenda
public void readExternal(ObjectInput in)
throws IOException,
ClassNotFoundException
readExternal in interface ExternalizableIOException
ClassNotFoundException
public void writeExternal(ObjectOutput out)
throws IOException
writeExternal in interface ExternalizableIOExceptionpublic org.drools.core.WorkingMemory getWorkingMemory()
getWorkingMemory in interface org.drools.core.common.InternalAgendapublic void addEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
addEagerRuleAgendaItem in interface org.drools.core.common.InternalAgendapublic void removeEagerRuleAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
removeEagerRuleAgendaItem in interface org.drools.core.common.InternalAgendapublic void addQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
addQueryAgendaItem in interface org.drools.core.common.InternalAgendapublic void removeQueryAgendaItem(org.drools.core.phreak.RuleAgendaItem item)
removeQueryAgendaItem in interface org.drools.core.common.InternalAgenda
public void scheduleItem(org.drools.core.common.ScheduledAgendaItem item,
org.drools.core.common.InternalWorkingMemory wm)
scheduleItem in interface org.drools.core.common.InternalAgendaitem - The item to schedule.public void addItemToActivationGroup(org.drools.core.common.AgendaItem item)
addItemToActivationGroup in interface org.drools.core.common.InternalAgendaitem - public org.drools.core.spi.InternalActivationGroup getStageActivationsGroup()
public void insertAndStageActivation(org.drools.core.common.AgendaItem activation)
insertAndStageActivation in interface org.drools.core.common.InternalAgendapublic boolean addActivation(org.drools.core.common.AgendaItem activation)
addActivation in interface org.drools.core.common.InternalAgendapublic boolean isDeclarativeAgenda()
isDeclarativeAgenda in interface org.drools.core.common.InternalAgendapublic void removeActivation(org.drools.core.common.AgendaItem activation)
removeActivation in interface org.drools.core.common.InternalAgenda
public void modifyActivation(org.drools.core.common.AgendaItem activation,
boolean previouslyActive)
modifyActivation in interface org.drools.core.common.InternalAgendapublic void clearAndCancelStagedActivations()
public int unstageActivations()
unstageActivations in interface org.drools.core.common.InternalAgenda
public void addActivation(org.drools.core.common.AgendaItem item,
boolean notify)
public void addAgendaItemToGroup(org.drools.core.common.AgendaItem item)
addAgendaItemToGroup in interface org.drools.core.common.InternalAgendapublic void removeScheduleItem(org.drools.core.common.ScheduledAgendaItem item)
removeScheduleItem in interface org.drools.core.common.InternalAgendapublic void addAgendaGroup(org.drools.core.spi.AgendaGroup agendaGroup)
addAgendaGroup in interface org.drools.core.common.InternalAgenda
public boolean createActivation(org.drools.core.reteoo.LeftTuple tuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.common.InternalWorkingMemory workingMemory,
org.drools.core.reteoo.TerminalNode rtn)
createActivation in interface org.drools.core.common.InternalAgenda
public boolean createPostponedActivation(org.drools.core.reteoo.LeftTuple tuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.common.InternalWorkingMemory workingMemory,
org.drools.core.reteoo.TerminalNode rtn)
createPostponedActivation in interface org.drools.core.common.InternalAgenda
public boolean isRuleActiveInRuleFlowGroup(String ruleflowGroupName,
String ruleName,
long processInstanceId)
isRuleActiveInRuleFlowGroup in interface org.drools.core.common.InternalAgenda
public void cancelActivation(org.drools.core.reteoo.LeftTuple leftTuple,
org.drools.core.spi.PropagationContext context,
org.drools.core.common.InternalWorkingMemory workingMemory,
org.drools.core.spi.Activation activation,
org.drools.core.reteoo.TerminalNode rtn)
cancelActivation in interface org.drools.core.common.InternalAgendapublic boolean setFocus(org.drools.core.spi.AgendaGroup agendaGroup)
setFocus in interface org.drools.core.common.InternalAgendapublic void setFocus(String name)
setFocus in interface org.drools.core.common.InternalAgenda
public void setFocus(org.drools.core.spi.PropagationContext ctx,
String name)
public org.drools.core.spi.AgendaGroup getFocus()
getFocus in interface org.drools.core.common.InternalAgendapublic org.drools.core.common.InternalAgendaGroup getNextFocus()
getNextFocus in interface org.drools.core.common.InternalAgendapublic org.drools.core.phreak.RuleAgendaItem peekNextRule()
peekNextRule in interface org.drools.core.common.InternalAgendapublic void setCurrentAgendaGroup(org.drools.core.common.InternalAgendaGroup agendaGroup)
public org.drools.core.spi.AgendaGroup getCurrentAgendaGroup()
public org.drools.core.spi.AgendaGroup getAgendaGroup(String name)
getAgendaGroup in interface org.drools.core.common.InternalAgendagetAgendaGroup in interface org.kie.api.runtime.rule.Agenda
public org.drools.core.spi.AgendaGroup getAgendaGroup(String name,
org.drools.core.impl.InternalKnowledgeBase kBase)
getAgendaGroup in interface org.drools.core.common.InternalAgendapublic org.drools.core.spi.AgendaGroup[] getAgendaGroups()
getAgendaGroups in interface org.drools.core.common.InternalAgendapublic Map<String,org.drools.core.common.InternalAgendaGroup> getAgendaGroupsMap()
getAgendaGroupsMap in interface org.drools.core.common.InternalAgendapublic org.drools.core.common.InternalAgendaGroup getMainAgendaGroup()
public org.drools.core.spi.AgendaGroup[] getStack()
getStack in interface org.drools.core.common.InternalAgendapublic LinkedList<org.drools.core.spi.AgendaGroup> getStackList()
getStackList in interface org.drools.core.common.InternalAgendapublic void addAgendaGroupOnStack(org.drools.core.spi.AgendaGroup agendaGroup)
addAgendaGroupOnStack in interface org.drools.core.common.InternalAgendapublic Map<String,org.drools.core.spi.InternalActivationGroup> getActivationGroupsMap()
getActivationGroupsMap in interface org.drools.core.common.InternalAgendapublic org.drools.core.spi.InternalActivationGroup getActivationGroup(String name)
getActivationGroup in interface org.drools.core.common.InternalAgendagetActivationGroup in interface org.kie.api.runtime.rule.Agendapublic org.drools.core.spi.RuleFlowGroup getRuleFlowGroup(String name)
getRuleFlowGroup in interface org.drools.core.common.InternalAgendagetRuleFlowGroup in interface org.kie.api.runtime.rule.Agendapublic void activateRuleFlowGroup(String name)
activateRuleFlowGroup in interface org.drools.core.common.InternalAgenda
public void activateRuleFlowGroup(String name,
long processInstanceId,
String nodeInstanceId)
activateRuleFlowGroup in interface org.drools.core.common.InternalAgenda
public void activateRuleFlowGroup(org.drools.core.common.InternalRuleFlowGroup group,
long processInstanceId,
String nodeInstanceId)
public void deactivateRuleFlowGroup(String name)
deactivateRuleFlowGroup in interface org.drools.core.common.InternalAgendapublic void deactivateRuleFlowGroup(org.drools.core.common.InternalRuleFlowGroup group)
public int focusStackSize()
focusStackSize in interface org.drools.core.common.InternalAgendapublic int agendaSize()
agendaSize in interface org.drools.core.common.InternalAgendapublic org.drools.core.spi.Activation[] getActivations()
getActivations in interface org.drools.core.common.InternalAgendapublic org.drools.core.spi.Activation[] getScheduledActivations()
getScheduledActivations in interface org.drools.core.common.InternalAgendapublic org.drools.core.util.LinkedList<org.drools.core.common.ScheduledAgendaItem<M>> getScheduledActivationsLinkedList()
getScheduledActivationsLinkedList in interface org.drools.core.common.InternalAgendapublic void clear()
clear in interface org.kie.api.runtime.rule.Agendapublic void clearAndCancel()
clearAndCancel in interface org.drools.core.common.InternalAgendapublic void clearAndCancelAgendaGroup(String name)
clearAndCancelAgendaGroup in interface org.drools.core.common.InternalAgendapublic void clearAndCancelAgendaGroup(org.drools.core.spi.AgendaGroup agendaGroup)
clearAndCancelAgendaGroup in interface org.drools.core.common.InternalAgendapublic void clearAndCancelActivationGroup(String name)
clearAndCancelActivationGroup in interface org.drools.core.common.InternalAgendapublic void clearAndCancelActivationGroup(org.drools.core.spi.InternalActivationGroup activationGroup)
clearAndCancelActivationGroup in interface org.drools.core.common.InternalAgendapublic void clearAndCancelRuleFlowGroup(String name)
clearAndCancelRuleFlowGroup in interface org.drools.core.common.InternalAgendapublic void clearAndCancelAndCancel(org.drools.core.spi.RuleFlowGroup ruleFlowGroup)
clearAndCancelAndCancel in interface org.drools.core.common.InternalAgenda
public int fireNextItem(org.kie.api.runtime.rule.AgendaFilter filter,
int fireCount,
int fireLimit)
throws org.drools.core.spi.ConsequenceException
Agenda item, skipping items
that are not allowed by the agenda filter.
fireNextItem in interface org.drools.core.common.InternalAgendaorg.drools.core.spi.ConsequenceException - If an error occurs while firing an agenda item.public void evaluateEagerList()
evaluateEagerList in interface org.drools.core.common.InternalAgendapublic int sizeOfRuleFlowGroup(String name)
sizeOfRuleFlowGroup in interface org.drools.core.common.InternalAgenda
public void fireActivation(org.drools.core.spi.Activation activation)
throws org.drools.core.spi.ConsequenceException
fireActivation in interface org.drools.core.common.InternalAgendaactivation - The activation to fire
org.drools.core.spi.ConsequenceException - If an error occurs while attempting to fire the consequence.
public boolean fireTimedActivation(org.drools.core.spi.Activation activation,
boolean saveForLater)
throws org.drools.core.spi.ConsequenceException
fireTimedActivation in interface org.drools.core.common.InternalAgendaorg.drools.core.spi.ConsequenceException
public boolean isRuleInstanceAgendaItem(String ruleflowGroupName,
String ruleName,
long processInstanceId)
isRuleInstanceAgendaItem in interface org.drools.core.common.InternalAgendapublic String getFocusName()
getFocusName in interface org.drools.core.common.InternalAgendapublic boolean isFireUntilHalt()
isFireUntilHalt in interface org.drools.core.common.InternalAgenda
public void stageLeftTuple(org.drools.core.phreak.RuleAgendaItem ruleAgendaItem,
org.drools.core.common.AgendaItem justified)
stageLeftTuple in interface org.drools.core.common.InternalAgendapublic void fireUntilHalt()
fireUntilHalt in interface org.drools.core.common.InternalAgendapublic void fireUntilHalt(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
fireUntilHalt in interface org.drools.core.common.InternalAgenda
public int fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter,
int fireLimit)
fireAllRules in interface org.drools.core.common.InternalAgendapublic boolean continueFiring(int fireLimit)
continueFiring in interface org.drools.core.common.InternalAgendapublic void notifyHalt()
notifyHalt in interface org.drools.core.common.InternalAgendapublic void halt()
halt in interface org.drools.core.common.InternalAgendapublic org.drools.core.spi.ConsequenceExceptionHandler getConsequenceExceptionHandler()
public void setActivationsFilter(org.drools.core.common.ActivationsFilter filter)
setActivationsFilter in interface org.drools.core.common.InternalAgendapublic org.drools.core.common.ActivationsFilter getActivationsFilter()
getActivationsFilter in interface org.drools.core.common.InternalAgendapublic org.drools.core.common.GarbageCollector getGarbageCollector()
getGarbageCollector in interface org.drools.core.common.InternalAgenda
|
Drools :: ReteOO 6.2.0.CR2 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||