org.drools
Interface WorkingMemory

All Superinterfaces:
RuleBaseEventManager, org.drools.runtime.rule.WorkingMemoryEntryPoint, WorkingMemoryEventManager
All Known Subinterfaces:
InternalWorkingMemory, InternalWorkingMemoryActions, StatefulSession
All Known Implementing Classes:
AbstractWorkingMemory, ReteooStatefulSession, ReteooWorkingMemory

public interface WorkingMemory
extends WorkingMemoryEventManager, WorkingMemoryEntryPoint

A knowledge session for a RuleBase. 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
 void clearActivationGroup(String group)
          Clears the Activation Group, cancellings all its Activations
 void clearAgenda()
          Clear the Agenda.
 void clearAgendaGroup(String group)
          Clear the Agenda Group, cancelling all its Activations.
 void clearRuleFlowGroup(String group)
          Clears the RuleFlow group, cancelling all its Activations
 int fireAllRules()
          Fire all items on the agenda until empty.
 int fireAllRules(AgendaFilter agendaFilter)
          Fire all items on the agenda until empty, using the given AgendaFiler
 int fireAllRules(AgendaFilter agendaFilter, int fireLimit)
          Fire all items on the agenda using the given AgendaFiler until empty or at most 'fireLimit' rules have fired
 int fireAllRules(int fireLimit)
          Fire all items on the agenda until empty or at most 'fireLimit' rules have fired
 Agenda getAgenda()
          Returns the Agenda for this WorkingMemory.
 org.drools.runtime.Environment getEnvironment()
           
 FactHandle getFactHandle(Object object)
          Retrieve the FactHandle associated with an Object.
 FactHandle getFactHandleByIdentity(Object object)
           
 Object getGlobal(String identifier)
          Retrieve a specific instance of global data by identifier
 GlobalResolver getGlobalResolver()
          Returns the current GlobalResolver
 Object getObject(org.drools.runtime.rule.FactHandle handle)
          Retrieve the object associated with a FactHandle.
 org.drools.runtime.process.ProcessInstance getProcessInstance(long id)
          Returns the process instance with the given id.
 Collection<org.drools.runtime.process.ProcessInstance> getProcessInstances()
          Returns the list of process instances of this working memory.
 QueryResults getQueryResults(String query, Object... arguments)
          Retrieve the QueryResults of the specified query and arguments
 RuleBase getRuleBase()
          Retrieve the RuleBase for this working memory.
 org.drools.time.SessionClock getSessionClock()
          Returns the session clock instance associated with this session
 WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String id)
          Returns the interface instance for a given entry point, so that the application can manage entry-point-scoped facts.
 org.drools.runtime.process.WorkItemManager getWorkItemManager()
           
 void halt()
          Stops rule firing after the current rule finishes executing
 Iterator<?> iterateFactHandles()
          Returns an Iterator for the FactHandles in the Working Memory.
 Iterator<?> iterateFactHandles(org.drools.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.drools.runtime.ObjectFilter filter)
          Returns an Iterator for the Objects in the Working Memory.
 void setAsyncExceptionHandler(AsyncExceptionHandler handler)
          Sets the AsyncExceptionHandler to handle exceptions thrown by the Agenda Scheduler used for duration rules.
 void setFocus(String focus)
          Set the focus to the specified AgendaGroup
 void setGlobal(String identifier, Object value)
          Set a specific instance as a global in this working memory.
 void setGlobalResolver(GlobalResolver globalResolver)
          Sets the GlobalResolver instance to be used when resolving globals, replaces the current GlobalResolver.
 org.drools.runtime.process.ProcessInstance startProcess(String processId)
          Starts a new process instance for the process with the given id.
 org.drools.runtime.process.ProcessInstance startProcess(String processId, Map<String,Object> parameters)
          Starts a new process instance for the process with the given id.
 
Methods inherited from interface org.drools.WorkingMemoryEventManager
addEventListener, addEventListener, getAgendaEventListeners, getWorkingMemoryEventListeners, removeEventListener, removeEventListener
 
Methods inherited from interface org.drools.RuleBaseEventManager
addEventListener, getRuleBaseEventListeners, removeEventListener
 
Methods inherited from interface org.drools.WorkingMemoryEntryPoint
insert, insert, retract, update
 
Methods inherited from interface org.drools.runtime.rule.WorkingMemoryEntryPoint
getEntryPointId, getFactCount, getFactHandles, getFactHandles, getObjects, getObjects
 

Method Detail

getAgenda

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.

Parameters:
identifier - the identifier under which to populate the data
value - the global value, cannot be null

getGlobal

Object getGlobal(String identifier)
Retrieve a specific instance of global data by identifier

Returns:
application data or null if nothing is set under this identifier

getEnvironment

org.drools.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 -

getGlobalResolver

GlobalResolver getGlobalResolver()
Returns the current GlobalResolver

Returns:

getRuleBase

RuleBase getRuleBase()
Retrieve the RuleBase for this working memory.

Returns:
The RuleBase.

fireAllRules

int fireAllRules()
                 throws FactException
Fire all items on the agenda until empty.

Throws:
FactException - If a RuntimeException error occurs.

fireAllRules

int fireAllRules(AgendaFilter agendaFilter)
                 throws FactException
Fire all items on the agenda until empty, using the given AgendaFiler

Throws:
FactException - If a RuntimeException error occurs.

fireAllRules

int fireAllRules(int fireLimit)
                 throws FactException
Fire all items on the agenda until empty or at most 'fireLimit' rules have fired

Throws:
FactException - If a RuntimeException error occurs.

fireAllRules

int fireAllRules(AgendaFilter agendaFilter,
                 int fireLimit)
                 throws FactException
Fire all items on the agenda using the given AgendaFiler until empty or at most 'fireLimit' rules have fired

Throws:
FactException - If a RuntimeException error occurs.

getObject

Object getObject(org.drools.runtime.rule.FactHandle handle)
Retrieve the object associated with a FactHandle.

Specified by:
getObject in interface org.drools.runtime.rule.WorkingMemoryEntryPoint
Parameters:
handle - The fact handle.
Returns:
The associated object.

getFactHandle

FactHandle getFactHandle(Object object)
Retrieve the FactHandle associated with an Object.

Specified by:
getFactHandle in interface org.drools.runtime.rule.WorkingMemoryEntryPoint
Parameters:
object - The object.
Returns:
The associated fact handle.

getFactHandleByIdentity

FactHandle getFactHandleByIdentity(Object object)

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.drools.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<?> 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<?> iterateFactHandles(org.drools.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

QueryResults getQueryResults(String query,
                             Object... arguments)
Retrieve the QueryResults of the specified query and arguments

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.drools.runtime.process.ProcessInstance startProcess(String processId)
Starts a new process instance for the process with the given id.


startProcess

org.drools.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.drools.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.drools.runtime.process.ProcessInstance getProcessInstance(long id)
Returns the process instance with the given id.

Returns:
the process instance with the given id

getWorkItemManager

org.drools.runtime.process.WorkItemManager getWorkItemManager()

halt

void halt()
Stops rule firing after the current rule finishes executing


getWorkingMemoryEntryPoint

WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String id)
Returns the interface instance for a given entry point, so that the application can manage entry-point-scoped facts.

Parameters:
id - the id of the entry point, as defined in the rules file
Returns:

getSessionClock

org.drools.time.SessionClock getSessionClock()
Returns the session clock instance associated with this session

Returns:


Copyright © 2001-2013 JBoss Inc.. All Rights Reserved.