Package org.drools.core.common
Class AgendaGroupQueueImpl
- java.lang.Object
-
- org.drools.core.common.AgendaGroupQueueImpl
-
- All Implemented Interfaces:
InternalAgendaGroup
,InternalRuleFlowGroup
,AgendaGroup
,RuleFlowGroup
,org.kie.api.runtime.rule.AgendaGroup
,org.kie.api.runtime.rule.RuleFlowGroup
public class AgendaGroupQueueImpl extends Object implements InternalAgendaGroup, InternalRuleFlowGroup
AgendaGroup
implementation that uses aPriorityQueue
to prioritise the evaluation of addedActivationQueue
s. TheAgendaGroup
also maintains aMap
ofActivationQueues
for requested salience values.- See Also:
PriorityQueue
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AgendaGroupQueueImpl.ClearAction
static class
AgendaGroupQueueImpl.DeactivateCallback
class
AgendaGroupQueueImpl.SetFocusAction
-
Field Summary
-
Fields inherited from interface org.drools.core.spi.AgendaGroup
MAIN
-
-
Constructor Summary
Constructors Constructor Description AgendaGroupQueueImpl(String name, InternalKnowledgeBase kBase)
-
Method Summary
-
-
-
Constructor Detail
-
AgendaGroupQueueImpl
public AgendaGroupQueueImpl(String name, InternalKnowledgeBase kBase)
-
-
Method Detail
-
visited
public void visited()
- Specified by:
visited
in interfaceInternalAgendaGroup
-
getName
public String getName()
- Specified by:
getName
in interfaceorg.kie.api.runtime.rule.AgendaGroup
- Specified by:
getName
in interfaceRuleFlowGroup
- Specified by:
getName
in interfaceorg.kie.api.runtime.rule.RuleFlowGroup
-
setWorkingMemory
public void setWorkingMemory(InternalWorkingMemory workingMemory)
- Specified by:
setWorkingMemory
in interfaceInternalAgendaGroup
-
getWorkingMemory
public InternalWorkingMemory getWorkingMemory()
- Specified by:
getWorkingMemory
in interfaceInternalAgendaGroup
-
hasRuleFlowListener
public void hasRuleFlowListener(boolean hasRuleFlowLister)
- Specified by:
hasRuleFlowListener
in interfaceInternalAgendaGroup
-
isRuleFlowListener
public boolean isRuleFlowListener()
- Specified by:
isRuleFlowListener
in interfaceInternalAgendaGroup
-
clear
public void clear()
- Specified by:
clear
in interfaceorg.kie.api.runtime.rule.AgendaGroup
- Specified by:
clear
in interfaceorg.kie.api.runtime.rule.RuleFlowGroup
-
setFocus
public void setFocus()
- Specified by:
setFocus
in interfaceorg.kie.api.runtime.rule.AgendaGroup
-
reset
public void reset()
- Specified by:
reset
in interfaceInternalAgendaGroup
-
getAndClear
public Activation[] getAndClear()
- Specified by:
getAndClear
in interfaceInternalAgendaGroup
-
size
public int size()
- Specified by:
size
in interfaceAgendaGroup
- Specified by:
size
in interfaceRuleFlowGroup
- Returns:
- The int total number of activations
-
add
public void add(Activation activation)
- Specified by:
add
in interfaceInternalAgendaGroup
-
remove
public Activation remove()
- Specified by:
remove
in interfaceInternalAgendaGroup
-
peek
public Activation peek()
- Specified by:
peek
in interfaceInternalAgendaGroup
-
isActive
public boolean isActive()
- Specified by:
isActive
in interfaceAgendaGroup
- Specified by:
isActive
in interfaceRuleFlowGroup
- Returns:
- boolean value indicating if the AgendaGroup is active and thus being evaluated.
-
isAutoDeactivate
public boolean isAutoDeactivate()
- Specified by:
isAutoDeactivate
in interfaceInternalAgendaGroup
- Specified by:
isAutoDeactivate
in interfaceRuleFlowGroup
-
setAutoDeactivate
public void setAutoDeactivate(boolean autoDeactivate)
Description copied from interface:InternalAgendaGroup
Sets the auto-deactivate status of this RuleFlowGroup. If this is set to true, an active RuleFlowGroup automatically deactivates if it has no more activations. If it had no activations when it was activated, it will be deactivated immediately.- Specified by:
setAutoDeactivate
in interfaceInternalAgendaGroup
- Specified by:
setAutoDeactivate
in interfaceRuleFlowGroup
-
addNodeInstance
public void addNodeInstance(Object processInstanceId, String nodeInstanceId)
- Specified by:
addNodeInstance
in interfaceInternalAgendaGroup
-
removeNodeInstance
public void removeNodeInstance(Object processInstanceId, String nodeInstanceId)
- Specified by:
removeNodeInstance
in interfaceInternalAgendaGroup
-
setActive
public void setActive(boolean activate)
- Specified by:
setActive
in interfaceInternalAgendaGroup
-
getAutoFocusActivator
public PropagationContext getAutoFocusActivator()
- Specified by:
getAutoFocusActivator
in interfaceAgendaGroup
-
setAutoFocusActivator
public void setAutoFocusActivator(PropagationContext autoFocusActivator)
- Specified by:
setAutoFocusActivator
in interfaceAgendaGroup
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfaceAgendaGroup
- Specified by:
isEmpty
in interfaceRuleFlowGroup
- Returns:
- boolean value indicating if this AgendaGroup is empty or not
-
getActivations
public Activation[] getActivations()
- Specified by:
getActivations
in interfaceAgendaGroup
- Specified by:
getActivations
in interfaceInternalAgendaGroup
- Returns:
- An immutable Collection of all the activations in the AgendaGroup
-
getNodeInstances
public Map<Object,String> getNodeInstances()
- Specified by:
getNodeInstances
in interfaceInternalAgendaGroup
-
remove
public void remove(Activation activation)
- Specified by:
remove
in interfaceInternalAgendaGroup
-
getActivatedForRecency
public long getActivatedForRecency()
- Specified by:
getActivatedForRecency
in interfaceInternalAgendaGroup
-
setActivatedForRecency
public void setActivatedForRecency(long recency)
- Specified by:
setActivatedForRecency
in interfaceInternalAgendaGroup
-
getClearedForRecency
public long getClearedForRecency()
- Specified by:
getClearedForRecency
in interfaceInternalAgendaGroup
-
setClearedForRecency
public void setClearedForRecency(long recency)
- Specified by:
setClearedForRecency
in interfaceInternalAgendaGroup
-
isSequential
public boolean isSequential()
- Specified by:
isSequential
in interfaceInternalAgendaGroup
-
-