Package org.drools.core
Interface WorkingMemory
-
- All Superinterfaces:
org.kie.api.runtime.rule.EntryPoint,org.kie.api.event.kiebase.KieBaseEventManager,ReteEvaluator,WorkingMemoryEntryPoint,WorkingMemoryEventManager
- All Known Subinterfaces:
InternalWorkingMemory,InternalWorkingMemoryActions
public interface WorkingMemory extends ReteEvaluator, WorkingMemoryEventManager, WorkingMemoryEntryPoint
A knowledge session for aRuleBase. While this object can be serialised out, it cannot be serialised in. This is because the RuleBase reference is transient. Please see the RuleBase interface for serializing in WorkingMemories from an InputStream.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclearActivationGroup(String group)Clears the Activation Group, cancellings all its ActivationsvoidclearAgenda()Clear the Agenda.voidclearAgendaGroup(String group)Clear the Agenda Group, cancelling all its Activations.voidclearRuleFlowGroup(String group)Clears the RuleFlow group, cancelling all its ActivationsintfireAllRules()Fire all items on the agenda until empty.intfireAllRules(int fireLimit)Fire all items on the agenda until empty or at most 'fireLimit' rules have firedintfireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter)Fire all items on the agenda until empty, using the given AgendaFilerintfireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter, int fireLimit)Fire all items on the agenda using the given AgendaFiler until empty or at most 'fireLimit' rules have firedorg.kie.api.runtime.rule.AgendagetAgenda()Returns the Agenda for this WorkingMemory.org.kie.api.runtime.EnvironmentgetEnvironment()org.kie.api.runtime.process.ProcessInstancegetProcessInstance(long id)Returns the process instance with the given id.org.kie.api.runtime.process.ProcessInstancegetProcessInstance(long id, boolean readOnly)Collection<org.kie.api.runtime.process.ProcessInstance>getProcessInstances()Returns the list of process instances of this working memory.org.kie.api.runtime.rule.QueryResultsgetQueryResults(String query, Object... arguments)Retrieve the QueryResults of the specified query and argumentsorg.kie.api.runtime.process.WorkItemManagergetWorkItemManager()voidhalt()Stops rule firing after the current rule finishes executingIterator<InternalFactHandle>iterateFactHandles()Returns an Iterator for the FactHandles in the Working Memory.Iterator<InternalFactHandle>iterateFactHandles(org.kie.api.runtime.ObjectFilter filter)Returns an Iterator for the Objects in the Working Memory.Iterator<?>iterateObjects()Returns an Iterator for the Objects in the Working Memory.Iterator<?>iterateObjects(org.kie.api.runtime.ObjectFilter filter)Returns an Iterator for the Objects in the Working Memory.voidsetAsyncExceptionHandler(AsyncExceptionHandler handler)Sets the AsyncExceptionHandler to handle exceptions thrown by the Agenda Scheduler used for duration rules.voidsetFocus(String focus)Set the focus to the specified AgendaGroupvoidsetGlobal(String identifier, Object value)Set a specific instance as a global in this working memory.voidsetGlobalResolver(GlobalResolver globalResolver)Sets the GlobalResolver instance to be used when resolving globals, replaces the current GlobalResolver.org.kie.api.runtime.process.ProcessInstancestartProcess(String processId)Starts a new process instance for the process with the given id.org.kie.api.runtime.process.ProcessInstancestartProcess(String processId, Map<String,Object> parameters)Starts a new process instance for the process with the given id.-
Methods inherited from interface org.kie.api.runtime.rule.EntryPoint
delete, delete, getEntryPointId, getFactCount, getFactHandle, getFactHandles, getFactHandles, getObject, getObjects, getObjects, insert, retract, update, update
-
Methods inherited from interface org.kie.api.event.kiebase.KieBaseEventManager
addEventListener, getKieBaseEventListeners, removeEventListener
-
Methods inherited from interface org.drools.core.common.ReteEvaluator
addPropagation, addPropagation, createFactHandle, createKnowledgeHelper, dispose, endOperation, getActivationsManager, getCalendars, getDefaultEntryPoint, getDefaultEntryPointId, getEntryPoint, getEntryPoints, getFactHandle, getFactHandleFactory, getGlobal, getGlobalResolver, getKnowledgeBase, getNextPropagationIdCounter, getNodeMemory, getRuleEventSupport, getRuleRuntimeEventSupport, getSessionClock, getSessionConfiguration, getStoreForClass, getTimerService, insert, isSequential, isThreadSafe, startOperation
-
Methods inherited from interface org.drools.core.WorkingMemoryEntryPoint
delete, delete, dispose, getEntryPoint, getEntryPointNode, getHandleFactory, getKnowledgeBase, getObjectStore, getObjectTypeConfigurationRegistry, getReteEvaluator, getRuleUnit, getTruthMaintenanceSystem, insert, reset, setRuleUnit, update
-
Methods inherited from interface org.drools.core.WorkingMemoryEventManager
addEventListener, addEventListener, getAgendaEventListeners, getRuleRuntimeEventListeners, removeEventListener, removeEventListener
-
-
-
-
Method Detail
-
getAgenda
org.kie.api.runtime.rule.Agenda getAgenda()
Returns the Agenda for this WorkingMemory. While the WorkingMemory interface is considered public, the Agenda interface is more subject to change.- Returns:
- the Agenda
-
setGlobal
void setGlobal(String identifier, Object value)
Set a specific instance as a global in this working memory. Null values will return doing nothing. The global identifier and its type must be declared in the drl.- Specified by:
setGlobalin interfaceReteEvaluator- Parameters:
identifier- the identifier under which to populate the datavalue- the global value, cannot be null
-
getEnvironment
org.kie.api.runtime.Environment getEnvironment()
-
setGlobalResolver
void setGlobalResolver(GlobalResolver globalResolver)
Sets the GlobalResolver instance to be used when resolving globals, replaces the current GlobalResolver. Typcicaly a delegating GlobalResolver is created that first gets a reference to the current GlobalResolver, for delegating- Parameters:
globalResolver-
-
fireAllRules
int fireAllRules()
Fire all items on the agenda until empty.- Specified by:
fireAllRulesin interfaceReteEvaluator
-
fireAllRules
int fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
Fire all items on the agenda until empty, using the given AgendaFiler- Specified by:
fireAllRulesin interfaceReteEvaluator
-
fireAllRules
int fireAllRules(int fireLimit)
Fire all items on the agenda until empty or at most 'fireLimit' rules have fired- Specified by:
fireAllRulesin interfaceReteEvaluator
-
fireAllRules
int fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter, int fireLimit)Fire all items on the agenda using the given AgendaFiler until empty or at most 'fireLimit' rules have fired- Specified by:
fireAllRulesin interfaceReteEvaluator
-
iterateObjects
Iterator<?> iterateObjects()
Returns an Iterator for the Objects in the Working Memory. This Iterator is not thread safe. This means that any working memory actions during iteration may invalidate the iterator.- Returns:
- the Iterator
-
iterateObjects
Iterator<?> iterateObjects(org.kie.api.runtime.ObjectFilter filter)
Returns an Iterator for the Objects in the Working Memory. This Iterator will filter out any objects that the ObjectFilter does not accept. This Iterator is not thread safe. This means that any working memory actions during iteration may invalidate the iterator.- Parameters:
filter-- Returns:
- the Iterator
-
iterateFactHandles
Iterator<InternalFactHandle> iterateFactHandles()
Returns an Iterator for the FactHandles in the Working Memory. This Iterator is not thread safe. This means that any working memory actions during iteration may invalidate the iterator.- Returns:
- the Iterator
-
iterateFactHandles
Iterator<InternalFactHandle> iterateFactHandles(org.kie.api.runtime.ObjectFilter filter)
Returns an Iterator for the Objects in the Working Memory. This Iterator will filter out any objects that the ObjectFilter does not accept. This Iterator is not thread safe. This means that any working memory actions during iteration may invalidate the iterator.- Parameters:
filter-- Returns:
- the Iterator
-
setFocus
void setFocus(String focus)
Set the focus to the specified AgendaGroup- Parameters:
focus-
-
getQueryResults
org.kie.api.runtime.rule.QueryResults getQueryResults(String query, Object... arguments)
Retrieve the QueryResults of the specified query and arguments- Specified by:
getQueryResultsin interfaceReteEvaluator- Parameters:
query- The name of the query.arguments- The arguments used for the query- Returns:
- The QueryResults of the specified query. If no results match the query it is empty.
- Throws:
IllegalArgumentException- if no query named "query" is found in the rulebase
-
setAsyncExceptionHandler
void setAsyncExceptionHandler(AsyncExceptionHandler handler)
Sets the AsyncExceptionHandler to handle exceptions thrown by the Agenda Scheduler used for duration rules.- Parameters:
handler-
-
clearAgenda
void clearAgenda()
Clear the Agenda. Iterates over each AgendaGroup cancalling all Activations.
-
clearAgendaGroup
void clearAgendaGroup(String group)
Clear the Agenda Group, cancelling all its Activations.
-
clearActivationGroup
void clearActivationGroup(String group)
Clears the Activation Group, cancellings all its Activations- Parameters:
group-
-
clearRuleFlowGroup
void clearRuleFlowGroup(String group)
Clears the RuleFlow group, cancelling all its Activations- Parameters:
group-
-
startProcess
org.kie.api.runtime.process.ProcessInstance startProcess(String processId)
Starts a new process instance for the process with the given id.
-
startProcess
org.kie.api.runtime.process.ProcessInstance startProcess(String processId, Map<String,Object> parameters)
Starts a new process instance for the process with the given id.
-
getProcessInstances
Collection<org.kie.api.runtime.process.ProcessInstance> getProcessInstances()
Returns the list of process instances of this working memory. This list is unmodifiable.- Returns:
- the list of process instances
-
getProcessInstance
org.kie.api.runtime.process.ProcessInstance getProcessInstance(long id)
Returns the process instance with the given id.- Returns:
- the process instance with the given id
-
getProcessInstance
org.kie.api.runtime.process.ProcessInstance getProcessInstance(long id, boolean readOnly)
-
getWorkItemManager
org.kie.api.runtime.process.WorkItemManager getWorkItemManager()
-
halt
void halt()
Stops rule firing after the current rule finishes executing
-
-