public class StatefulKnowledgeSessionImpl extends AbstractRuntime implements org.kie.internal.runtime.StatefulKnowledgeSession, InternalWorkingMemoryEntryPoint, InternalKnowledgeRuntime, org.kie.api.runtime.KieSession, org.kie.api.event.KieRuntimeEventManager, InternalWorkingMemoryActions, EventSupport, org.kie.api.event.process.ProcessEventManager, org.kie.internal.process.CorrelationAwareProcessRuntime, Externalizable
Modifier and Type | Class and Description |
---|---|
static class |
StatefulKnowledgeSessionImpl.AbstractImmutableCollection |
static class |
StatefulKnowledgeSessionImpl.GlobalsAdapter |
static class |
StatefulKnowledgeSessionImpl.ObjectStoreWrapper |
static class |
StatefulKnowledgeSessionImpl.WorkingMemoryReteAssertAction |
static class |
StatefulKnowledgeSessionImpl.WorkingMemoryReteExpireAction |
Modifier and Type | Field and Description |
---|---|
protected InternalAgenda |
agenda
Rule-firing agenda.
|
protected AgendaEventSupport |
agendaEventSupport |
byte[] |
bytes |
protected org.kie.api.runtime.Calendars |
calendars |
protected SessionConfiguration |
config |
protected DateFormats |
dateFormats |
protected NamedEntryPoint |
defaultEntryPoint |
protected Map<String,WorkingMemoryEntryPoint> |
entryPoints |
protected AtomicBoolean |
firing
Flag to determine if a rule is currently being fired.
|
protected GlobalResolver |
globalResolver
Global values which are associated with this memory.
|
protected FactHandleFactory |
handleFactory |
protected Long |
id |
protected InternalFactHandle |
initialFactHandle |
protected InternalKnowledgeBase |
kBase
The
RuleBase with which this memory is associated. |
protected List<org.kie.api.event.kiebase.KieBaseEventListener> |
kieBaseEventListeners |
protected ReentrantLock |
lock |
protected PropagationContextFactory |
pctxFactory |
protected AtomicLong |
propagationIdCounter
This must be thread safe as it is incremented and read via different
EntryPoints
|
protected PropagationList |
propagationList |
protected RuleEventListenerSupport |
ruleEventListenerSupport |
protected RuleRuntimeEventSupport |
ruleRuntimeEventSupport
The eventSupport
|
logger
Constructor and Description |
---|
StatefulKnowledgeSessionImpl() |
StatefulKnowledgeSessionImpl(long id,
InternalKnowledgeBase kBase) |
StatefulKnowledgeSessionImpl(long id,
InternalKnowledgeBase kBase,
boolean initInitFactHandle,
SessionConfiguration config,
org.kie.api.runtime.Environment environment) |
StatefulKnowledgeSessionImpl(long id,
InternalKnowledgeBase kBase,
FactHandleFactory handleFactory,
boolean initInitFactHandle,
long propagationContext,
SessionConfiguration config,
org.kie.api.runtime.Environment environment,
RuleRuntimeEventSupport workingMemoryEventSupport,
AgendaEventSupport agendaEventSupport,
RuleEventListenerSupport ruleEventListenerSupport,
InternalAgenda agenda) |
StatefulKnowledgeSessionImpl(long id,
InternalKnowledgeBase kBase,
FactHandleFactory handleFactory,
long propagationContext,
SessionConfiguration config,
InternalAgenda agenda,
org.kie.api.runtime.Environment environment) |
Modifier and Type | Method and Description |
---|---|
void |
abortProcessInstance(long id) |
void |
activationFired()
This method is called by the agenda right after an activation was fired
to allow the working memory to resume any activities blocked during
activation firing.
|
void |
addEventListener(org.kie.api.event.rule.AgendaEventListener listener)
Add an event listener.
|
void |
addEventListener(org.kie.api.event.kiebase.KieBaseEventListener listener) |
void |
addEventListener(org.kie.api.event.process.ProcessEventListener listener) |
void |
addEventListener(org.kie.internal.event.rule.RuleEventListener listener) |
void |
addEventListener(org.kie.api.event.rule.RuleRuntimeEventListener listener)
Add an event listener.
|
void |
addPropagation(PropagationEntry propagationEntry) |
protected void |
checkAlive() |
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 |
clearNodeMemory(MemoryFactory node) |
void |
clearRuleFlowGroup(String group)
Clears the RuleFlow group, cancelling all its Activations
|
void |
closeLiveQuery(InternalFactHandle factHandle) |
org.kie.api.runtime.process.ProcessInstance |
createProcessInstance(String processId,
org.kie.internal.process.CorrelationKey correlationKey,
Map<String,Object> parameters) |
org.kie.api.runtime.process.ProcessInstance |
createProcessInstance(String processId,
Map<String,Object> parameters) |
<T> T |
createRuntimeService(Class<T> cls) |
void |
delete(org.kie.api.runtime.rule.FactHandle handle) |
void |
delete(org.kie.api.runtime.rule.FactHandle factHandle,
RuleImpl rule,
Activation activation) |
void |
destroy() |
void |
dispose()
Internal method called by the engine when the session is being disposed, so that the entry point
can proceed with the necessary clean ups.
|
<T,K> T |
don(Activation activation,
K core,
Class<T> trait,
boolean b,
org.kie.internal.runtime.beliefs.Mode[] modes) |
<T,K> T |
don(Activation activation,
K core,
Collection<Class<? extends Thing>> traits,
boolean b,
org.kie.internal.runtime.beliefs.Mode[] modes) |
void |
endBatchExecution() |
void |
endOperation()
This method must be called after finishing any work in the engine,
like inserting a new fact or firing a new rule.
|
protected BaseNode[] |
evalQuery(String queryName,
DroolsQuery queryObject,
InternalFactHandle handle,
PropagationContext pCtx) |
<T> T |
execute(org.kie.api.command.Command<T> command) |
<T> T |
execute(org.kie.internal.command.Context context,
org.kie.api.command.Command<T> command) |
void |
executeQueuedActions() |
void |
executeQueuedActionsForRete() |
int |
fireAllRules()
Fire all items on the agenda until empty.
|
int |
fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
Fire all items on the agenda until empty, using the given AgendaFiler
|
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
|
int |
fireAllRules(int fireLimit)
Fire all items on the agenda until empty or at most 'fireLimit' rules have fired
|
void |
fireUntilHalt()
Keeps firing activations until a halt is called.
|
void |
fireUntilHalt(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
Keeps firing activations until a halt is called.
|
void |
flushNonMarshallablePropagations() |
void |
flushPropagations() |
void |
flushPropagationsOnFireUntilHalt(boolean fired) |
void |
flushPropagationsOnFireUntilHalt(boolean fired,
PropagationEntry propagationEntry) |
Iterator<? extends PropagationEntry> |
getActionsIterator() |
Map |
getActivationParameters(Activation activation)
Helper method
|
Map.Entry[] |
getActivationParameters(long activationId) |
InternalAgenda |
getAgenda()
Returns the Agenda for this WorkingMemory.
|
Collection<org.kie.api.event.rule.AgendaEventListener> |
getAgendaEventListeners()
Returns all event listeners.
|
AgendaEventSupport |
getAgendaEventSupport() |
org.kie.api.runtime.Calendars |
getCalendars() |
Map<String,org.kie.api.runtime.Channel> |
getChannels()
Returns a map of channel Id->Channel of all channels in
this working memory
|
DateFormats |
getDateFormats() |
EntryPointId |
getEntryPoint() |
org.kie.api.runtime.rule.EntryPoint |
getEntryPoint(String name) |
String |
getEntryPointId() |
Map<String,WorkingMemoryEntryPoint> |
getEntryPointMap() |
EntryPointNode |
getEntryPointNode() |
Collection<? extends org.kie.api.runtime.rule.EntryPoint> |
getEntryPoints() |
org.kie.api.runtime.Environment |
getEnvironment() |
ExecutionResultImpl |
getExecutionResult() |
long |
getFactCount() |
org.kie.api.runtime.rule.FactHandle |
getFactHandle(Object object)
Retrieve the
FactHandle associated with an Object. |
org.kie.api.runtime.rule.FactHandle |
getFactHandleByIdentity(Object object)
Looks for the fact handle associated to the given object
by looking up the object IDENTITY (==), even if rule base
is configured to AssertBehavior.EQUALITY.
|
FactHandleFactory |
getFactHandleFactory() |
<T extends org.kie.api.runtime.rule.FactHandle> |
getFactHandles() |
<T extends org.kie.api.runtime.rule.FactHandle> |
getFactHandles(org.kie.api.runtime.ObjectFilter filter) |
Object |
getGlobal(String identifier)
Retrieve a specific instance of global data by identifier
|
GlobalResolver |
getGlobalResolver()
Returns the current GlobalResolver
|
org.kie.api.runtime.Globals |
getGlobals() |
int |
getId() |
long |
getIdentifier() |
long |
getIdleTime()
Returns the number of time units (usually ms) that the engine is idle
according to the session clock or -1 if it is not idle.
|
InternalFactHandle |
getInitialFactHandle() |
InternalWorkingMemory |
getInternalWorkingMemory() |
org.kie.internal.KnowledgeBase |
getKieBase() |
Collection<org.kie.api.event.kiebase.KieBaseEventListener> |
getKieBaseEventListeners() |
<T> T |
getKieRuntime(Class<T> cls) |
InternalKnowledgeBase |
getKnowledgeBase()
Retrieve the
RuleBase for this working memory. |
InternalKnowledgeRuntime |
getKnowledgeRuntime() |
long |
getLastIdleTimestamp() |
Lock |
getLock() |
long |
getNextPropagationIdCounter() |
NodeMemories |
getNodeMemories() |
Memory |
getNodeMemory(MemoryFactory node)
Retrieve the
JoinMemory for a particular
JoinNode . |
Object |
getObject(org.kie.api.runtime.rule.FactHandle handle)
Returns the fact Object for the given
FactHandle . |
org.kie.api.marshalling.ObjectMarshallingStrategyStore |
getObjectMarshallingStrategyStore() |
Collection<?> |
getObjects() |
Collection<?> |
getObjects(org.kie.api.runtime.ObjectFilter filter) |
ObjectStore |
getObjectStore() |
ObjectTypeConfigurationRegistry |
getObjectTypeConfigurationRegistry() |
Collection<org.kie.api.event.process.ProcessEventListener> |
getProcessEventListeners() |
org.kie.api.runtime.process.ProcessInstance |
getProcessInstance(org.kie.internal.process.CorrelationKey correlationKey) |
org.kie.api.runtime.process.ProcessInstance |
getProcessInstance(long processInstanceId)
Returns the process instance with the given id.
|
org.kie.api.runtime.process.ProcessInstance |
getProcessInstance(long processInstanceId,
boolean readOnly) |
Collection<org.kie.api.runtime.process.ProcessInstance> |
getProcessInstances()
Returns the list of process instances of this working memory.
|
InternalProcessRuntime |
getProcessRuntime() |
long |
getPropagationIdCounter() |
QueryResultsImpl |
getQueryResults(String query) |
QueryResultsImpl |
getQueryResults(String queryName,
Object... arguments)
Retrieve the QueryResults of the specified query and arguments
|
List |
getRuleEventListeners() |
Collection<org.kie.api.event.rule.RuleRuntimeEventListener> |
getRuleRuntimeEventListeners()
Returns all event listeners.
|
RuleRuntimeEventSupport |
getRuleRuntimeEventSupport() |
org.kie.api.time.SessionClock |
getSessionClock()
Returns the session clock instance associated with this session
|
SessionConfiguration |
getSessionConfiguration() |
TimerService |
getTimerService()
Returns the TimerService instance (session clock) for this
session.
|
long |
getTimeToNextJob()
Returns the number of time units (usually ms) to
the next scheduled job
|
long |
getTotalFactCount()
Returns the total number of facts in the working memory, i.e., counting
all facts from all entry points.
|
WorkingMemoryEntryPoint |
getWorkingMemoryEntryPoint(String name)
Returns the interface instance for a given entry point, so
that the application can manage entry-point-scoped facts.
|
Map<String,WorkingMemoryEntryPoint> |
getWorkingMemoryEntryPoints() |
org.kie.api.runtime.process.WorkItemManager |
getWorkItemManager() |
void |
halt()
Stops rule firing after the current rule finishes executing
|
boolean |
hasPendingPropagations() |
protected void |
init() |
void |
initInitialFact(InternalKnowledgeBase kBase,
MarshallerReaderContext context) |
void |
insert(InternalFactHandle handle,
Object object,
RuleImpl rule,
Activation activation,
ObjectTypeConf typeConf) |
org.kie.api.runtime.rule.FactHandle |
insert(Object object)
Assert a fact.
|
org.kie.api.runtime.rule.FactHandle |
insert(Object object,
boolean dynamic)
Insert a fact registering JavaBean
PropertyChangeListeners
on the Object to automatically trigger update calls
if dynamic is true . |
org.kie.api.runtime.rule.FactHandle |
insert(Object object,
Object tmsValue,
boolean dynamic,
boolean logical,
RuleImpl rule,
Activation activation) |
org.kie.api.runtime.rule.FactHandle |
insertLogical(Object object) |
org.kie.api.runtime.rule.FactHandle |
insertLogical(Object object,
boolean dynamic) |
org.kie.api.runtime.rule.FactHandle |
insertLogical(Object object,
Object value) |
boolean |
isAlive() |
boolean |
isSequential() |
Iterator |
iterateFactHandles()
This class is not thread safe, changes to the working memory during
iteration may give unexpected results
|
Iterator |
iterateFactHandles(org.kie.api.runtime.ObjectFilter filter)
This class is not thread safe, changes to the working memory during
iteration may give unexpected results
|
List |
iterateNonDefaultEntryPointObjectsToList() |
Iterator |
iterateObjects()
This class is not thread safe, changes to the working memory during
iteration may give unexpected results
|
Iterator |
iterateObjects(org.kie.api.runtime.ObjectFilter filter)
This class is not thread safe, changes to the working memory during
iteration may give unexpected results
|
List |
iterateObjectsToList() |
void |
notifyEngineInactive() |
void |
notifyHalt() |
org.kie.api.runtime.rule.LiveQuery |
openLiveQuery(String query,
Object[] arguments,
org.kie.api.runtime.rule.ViewChangedEventListener listener) |
void |
prepareToFireActivation()
This method is called by the agenda before firing a new activation
to ensure the working memory is in a safe state to fire the activation.
|
void |
queueWorkingMemoryAction(WorkingMemoryAction action) |
void |
readExternal(ObjectInput in) |
void |
registerChannel(String name,
org.kie.api.runtime.Channel channel) |
void |
removeEventListener(org.kie.api.event.rule.AgendaEventListener listener)
Remove an event listener.
|
void |
removeEventListener(org.kie.api.event.kiebase.KieBaseEventListener listener) |
void |
removeEventListener(org.kie.api.event.process.ProcessEventListener listener) |
void |
removeEventListener(org.kie.internal.event.rule.RuleEventListener listener) |
void |
removeEventListener(org.kie.api.event.rule.RuleRuntimeEventListener listener)
Remove an event listener.
|
void |
reset() |
void |
reset(int handleId,
long handleCounter,
long propagationCounter) |
void |
retract(org.kie.api.runtime.rule.FactHandle handle)
Retract a fact.
|
void |
setAgendaEventSupport(AgendaEventSupport agendaEventSupport) |
void |
setAsyncExceptionHandler(AsyncExceptionHandler handler)
Sets the AsyncExceptionHandler to handle exceptions thrown by the Agenda
Scheduler used for duration rules.
|
void |
setEndOperationListener(EndOperationListener listener) |
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.
|
void |
setId(Long id) |
void |
setInitialFactHandle(InternalFactHandle initialFactHandle) |
void |
setRuleRuntimeEventSupport(RuleRuntimeEventSupport ruleRuntimeEventSupport) |
void |
signalEvent(String type,
Object event) |
void |
signalEvent(String type,
Object event,
long processInstanceId) |
void |
startBatchExecution(ExecutionResultImpl results) |
void |
startOperation()
This method must be called before starting any new work in the engine,
like inserting a new fact or firing a new rule.
|
org.kie.api.runtime.process.ProcessInstance |
startProcess(String processId)
Starts a new process instance for the process with the given id.
|
org.kie.api.runtime.process.ProcessInstance |
startProcess(String processId,
org.kie.internal.process.CorrelationKey correlationKey,
Map<String,Object> parameters) |
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.
|
org.kie.api.runtime.process.ProcessInstance |
startProcessInstance(long processInstanceId) |
PropagationEntry |
takeAllPropagations() |
void |
unregisterChannel(String name) |
void |
update(org.kie.api.runtime.rule.FactHandle factHandle) |
void |
update(org.kie.api.runtime.rule.FactHandle handle,
Object object)
Inform the WorkingMemory that a Fact has been modified and that it
should now update the network.
|
void |
update(org.kie.api.runtime.rule.FactHandle factHandle,
Object object,
BitMask mask,
Class<?> modifiedClass,
Activation activation)
modify is implemented as half way retract / assert due to the truth
maintenance issues.
|
void |
updateEntryPointsCache() |
void |
updateTraits(InternalFactHandle h,
BitMask mask,
Class<?> modifiedClass,
Activation activation) |
void |
writeExternal(ObjectOutput out) |
getLogger, setLogger
public byte[] bytes
protected Long id
protected NamedEntryPoint defaultEntryPoint
protected GlobalResolver globalResolver
protected org.kie.api.runtime.Calendars calendars
protected DateFormats dateFormats
protected RuleRuntimeEventSupport ruleRuntimeEventSupport
protected RuleEventListenerSupport ruleEventListenerSupport
protected AgendaEventSupport agendaEventSupport
protected List<org.kie.api.event.kiebase.KieBaseEventListener> kieBaseEventListeners
protected transient InternalKnowledgeBase kBase
RuleBase
with which this memory is associated.protected FactHandleFactory handleFactory
protected InternalAgenda agenda
protected ReentrantLock lock
protected AtomicLong propagationIdCounter
protected volatile AtomicBoolean firing
protected Map<String,WorkingMemoryEntryPoint> entryPoints
protected volatile InternalFactHandle initialFactHandle
protected PropagationContextFactory pctxFactory
protected SessionConfiguration config
protected PropagationList propagationList
public StatefulKnowledgeSessionImpl()
public StatefulKnowledgeSessionImpl(long id, InternalKnowledgeBase kBase)
public StatefulKnowledgeSessionImpl(long id, InternalKnowledgeBase kBase, boolean initInitFactHandle, SessionConfiguration config, org.kie.api.runtime.Environment environment)
public StatefulKnowledgeSessionImpl(long id, InternalKnowledgeBase kBase, FactHandleFactory handleFactory, long propagationContext, SessionConfiguration config, InternalAgenda agenda, org.kie.api.runtime.Environment environment)
public StatefulKnowledgeSessionImpl(long id, InternalKnowledgeBase kBase, FactHandleFactory handleFactory, boolean initInitFactHandle, long propagationContext, SessionConfiguration config, org.kie.api.runtime.Environment environment, RuleRuntimeEventSupport workingMemoryEventSupport, AgendaEventSupport agendaEventSupport, RuleEventListenerSupport ruleEventListenerSupport, InternalAgenda agenda)
protected void init()
public <T> T getKieRuntime(Class<T> cls)
public <T> T createRuntimeService(Class<T> cls)
public org.kie.api.runtime.rule.EntryPoint getEntryPoint(String name)
getEntryPoint
in interface InternalWorkingMemory
getEntryPoint
in interface org.kie.api.runtime.rule.RuleRuntime
public Collection<? extends org.kie.api.runtime.rule.EntryPoint> getEntryPoints()
getEntryPoints
in interface InternalWorkingMemory
getEntryPoints
in interface org.kie.api.runtime.rule.RuleRuntime
public Map<String,WorkingMemoryEntryPoint> getEntryPointMap()
public Collection<org.kie.api.event.rule.RuleRuntimeEventListener> getRuleRuntimeEventListeners()
WorkingMemoryEventManager
getRuleRuntimeEventListeners
in interface EventSupport
getRuleRuntimeEventListeners
in interface WorkingMemoryEventManager
getRuleRuntimeEventListeners
in interface org.kie.api.event.rule.RuleRuntimeEventManager
public Collection<org.kie.api.event.rule.AgendaEventListener> getAgendaEventListeners()
WorkingMemoryEventManager
getAgendaEventListeners
in interface EventSupport
getAgendaEventListeners
in interface WorkingMemoryEventManager
getAgendaEventListeners
in interface org.kie.api.event.rule.RuleRuntimeEventManager
public void addEventListener(org.kie.api.event.process.ProcessEventListener listener)
addEventListener
in interface org.kie.api.event.process.ProcessEventManager
public Collection<org.kie.api.event.process.ProcessEventListener> getProcessEventListeners()
getProcessEventListeners
in interface org.kie.api.event.process.ProcessEventManager
public void removeEventListener(org.kie.api.event.process.ProcessEventListener listener)
removeEventListener
in interface org.kie.api.event.process.ProcessEventManager
public org.kie.internal.KnowledgeBase getKieBase()
getKieBase
in interface org.kie.api.runtime.KieRuntime
getKieBase
in interface org.kie.internal.runtime.StatefulKnowledgeSession
public void dispose()
WorkingMemoryEntryPoint
dispose
in interface WorkingMemoryEntryPoint
dispose
in interface org.kie.api.runtime.KieSession
public boolean isAlive()
public void destroy()
destroy
in interface org.kie.api.runtime.KieSession
public void update(org.kie.api.runtime.rule.FactHandle factHandle)
public void abortProcessInstance(long id)
abortProcessInstance
in interface org.kie.api.runtime.process.ProcessRuntime
public void signalEvent(String type, Object event)
signalEvent
in interface org.kie.api.runtime.process.ProcessRuntime
public void signalEvent(String type, Object event, long processInstanceId)
signalEvent
in interface org.kie.api.runtime.process.ProcessRuntime
public org.kie.api.runtime.Globals getGlobals()
getGlobals
in interface org.kie.api.runtime.KieRuntime
public <T extends org.kie.api.runtime.rule.FactHandle> Collection<T> getFactHandles()
getFactHandles
in interface org.kie.api.runtime.rule.EntryPoint
public <T extends org.kie.api.runtime.rule.FactHandle> Collection<T> getFactHandles(org.kie.api.runtime.ObjectFilter filter)
getFactHandles
in interface org.kie.api.runtime.rule.EntryPoint
public Collection<?> getObjects()
getObjects
in interface org.kie.api.runtime.rule.EntryPoint
public Collection<?> getObjects(org.kie.api.runtime.ObjectFilter filter)
getObjects
in interface org.kie.api.runtime.rule.EntryPoint
public <T> T execute(org.kie.api.command.Command<T> command)
execute
in interface org.kie.api.runtime.CommandExecutor
public <T> T execute(org.kie.internal.command.Context context, org.kie.api.command.Command<T> command)
public void initInitialFact(InternalKnowledgeBase kBase, MarshallerReaderContext context)
public String getEntryPointId()
getEntryPointId
in interface org.kie.api.runtime.rule.EntryPoint
public QueryResultsImpl getQueryResults(String queryName, Object... arguments)
WorkingMemory
getQueryResults
in interface WorkingMemory
getQueryResults
in interface org.kie.api.runtime.rule.RuleRuntime
queryName
- The name of the query.arguments
- The arguments used for the querypublic org.kie.api.runtime.rule.LiveQuery openLiveQuery(String query, Object[] arguments, org.kie.api.runtime.rule.ViewChangedEventListener listener)
openLiveQuery
in interface org.kie.api.runtime.rule.RuleRuntime
protected BaseNode[] evalQuery(String queryName, DroolsQuery queryObject, InternalFactHandle handle, PropagationContext pCtx)
public void closeLiveQuery(InternalFactHandle factHandle)
closeLiveQuery
in interface InternalWorkingMemory
public EntryPointId getEntryPoint()
getEntryPoint
in interface InternalWorkingMemory
getEntryPoint
in interface InternalWorkingMemoryEntryPoint
public InternalWorkingMemory getInternalWorkingMemory()
getInternalWorkingMemory
in interface InternalWorkingMemoryEntryPoint
public void writeExternal(ObjectOutput out) throws IOException
writeExternal
in interface Externalizable
IOException
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
IOException
ClassNotFoundException
public void updateEntryPointsCache()
updateEntryPointsCache
in interface InternalWorkingMemory
public SessionConfiguration getSessionConfiguration()
getSessionConfiguration
in interface InternalWorkingMemory
getSessionConfiguration
in interface org.kie.api.runtime.KieRuntime
public void reset()
reset
in interface InternalWorkingMemoryEntryPoint
public void reset(int handleId, long handleCounter, long propagationCounter)
public void setRuleRuntimeEventSupport(RuleRuntimeEventSupport ruleRuntimeEventSupport)
setRuleRuntimeEventSupport
in interface InternalWorkingMemory
public void setAgendaEventSupport(AgendaEventSupport agendaEventSupport)
setAgendaEventSupport
in interface InternalWorkingMemory
public boolean isSequential()
isSequential
in interface InternalWorkingMemory
public void addEventListener(org.kie.api.event.rule.RuleRuntimeEventListener listener)
WorkingMemoryEventManager
addEventListener
in interface WorkingMemoryEventManager
addEventListener
in interface org.kie.api.event.rule.RuleRuntimeEventManager
listener
- The listener to add.public void removeEventListener(org.kie.api.event.rule.RuleRuntimeEventListener listener)
WorkingMemoryEventManager
removeEventListener
in interface WorkingMemoryEventManager
removeEventListener
in interface org.kie.api.event.rule.RuleRuntimeEventManager
listener
- The listener to remove.public void addEventListener(org.kie.api.event.rule.AgendaEventListener listener)
WorkingMemoryEventManager
addEventListener
in interface WorkingMemoryEventManager
addEventListener
in interface org.kie.api.event.rule.RuleRuntimeEventManager
listener
- The listener to add.public void removeEventListener(org.kie.api.event.rule.AgendaEventListener listener)
WorkingMemoryEventManager
removeEventListener
in interface WorkingMemoryEventManager
removeEventListener
in interface org.kie.api.event.rule.RuleRuntimeEventManager
listener
- The listener to remove.public void addEventListener(org.kie.api.event.kiebase.KieBaseEventListener listener)
addEventListener
in interface org.kie.api.event.kiebase.KieBaseEventManager
public Collection<org.kie.api.event.kiebase.KieBaseEventListener> getKieBaseEventListeners()
getKieBaseEventListeners
in interface org.kie.api.event.kiebase.KieBaseEventManager
public void removeEventListener(org.kie.api.event.kiebase.KieBaseEventListener listener)
removeEventListener
in interface org.kie.api.event.kiebase.KieBaseEventManager
public void addEventListener(org.kie.internal.event.rule.RuleEventListener listener)
public void removeEventListener(org.kie.internal.event.rule.RuleEventListener listener)
public List getRuleEventListeners()
public FactHandleFactory getFactHandleFactory()
getFactHandleFactory
in interface InternalWorkingMemory
public void setGlobal(String identifier, Object value)
WorkingMemory
setGlobal
in interface WorkingMemory
setGlobal
in interface org.kie.api.runtime.KieRuntime
identifier
- the identifier under which to populate the datavalue
- the global value, cannot be nullpublic void setGlobalResolver(GlobalResolver globalResolver)
WorkingMemory
setGlobalResolver
in interface WorkingMemory
public GlobalResolver getGlobalResolver()
WorkingMemory
getGlobalResolver
in interface WorkingMemory
public org.kie.api.runtime.Calendars getCalendars()
getCalendars
in interface InternalWorkingMemory
getCalendars
in interface org.kie.api.runtime.KieRuntime
public DateFormats getDateFormats()
getDateFormats
in interface InternalWorkingMemory
public int getId()
getId
in interface InternalWorkingMemory
getId
in interface org.kie.api.runtime.KieSession
public long getIdentifier()
getIdentifier
in interface org.kie.api.runtime.KieSession
public void setId(Long id)
setId
in interface InternalKnowledgeRuntime
setId
in interface InternalWorkingMemory
protected void checkAlive()
public Object getGlobal(String identifier)
WorkingMemory
getGlobal
in interface WorkingMemory
getGlobal
in interface org.kie.api.runtime.KieRuntime
public org.kie.api.runtime.Environment getEnvironment()
getEnvironment
in interface WorkingMemory
getEnvironment
in interface org.kie.api.runtime.KieRuntime
public InternalAgenda getAgenda()
WorkingMemory
getAgenda
in interface InternalWorkingMemory
getAgenda
in interface WorkingMemory
getAgenda
in interface org.kie.api.runtime.rule.RuleRuntime
public void clearAgenda()
WorkingMemory
clearAgenda
in interface WorkingMemory
public void clearAgendaGroup(String group)
WorkingMemory
clearAgendaGroup
in interface WorkingMemory
public void clearActivationGroup(String group)
WorkingMemory
clearActivationGroup
in interface WorkingMemory
public void clearRuleFlowGroup(String group)
WorkingMemory
clearRuleFlowGroup
in interface WorkingMemory
public InternalKnowledgeBase getKnowledgeBase()
WorkingMemory
RuleBase
for this working memory.getKnowledgeBase
in interface InternalWorkingMemoryEntryPoint
getKnowledgeBase
in interface WorkingMemory
RuleBase
.public void halt()
WorkingMemory
halt
in interface WorkingMemory
halt
in interface org.kie.api.runtime.rule.RuleRuntime
public int fireAllRules()
WorkingMemory
fireAllRules
in interface WorkingMemory
fireAllRules
in interface org.kie.api.runtime.rule.StatefulRuleSession
public int fireAllRules(int fireLimit)
WorkingMemory
fireAllRules
in interface WorkingMemory
fireAllRules
in interface org.kie.api.runtime.rule.StatefulRuleSession
public int fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
WorkingMemory
fireAllRules
in interface WorkingMemory
fireAllRules
in interface org.kie.api.runtime.rule.StatefulRuleSession
public int fireAllRules(org.kie.api.runtime.rule.AgendaFilter agendaFilter, int fireLimit)
WorkingMemory
fireAllRules
in interface WorkingMemory
fireAllRules
in interface org.kie.api.runtime.rule.StatefulRuleSession
public void fireUntilHalt()
fireUntilHalt
in interface org.kie.api.runtime.rule.StatefulRuleSession
IllegalStateException
- if this method is called when running in sequential modepublic void fireUntilHalt(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
fireUntilHalt
in interface org.kie.api.runtime.rule.StatefulRuleSession
agendaFilter
- filters the activations that may fireIllegalStateException
- if this method is called when running in sequential modepublic Object getObject(org.kie.api.runtime.rule.FactHandle handle)
FactHandle
. It
actually attempts to return the value from the handle, before retrieving
it from objects map.getObject
in interface WorkingMemory
getObject
in interface org.kie.api.runtime.rule.EntryPoint
handle
- The FactHandle
reference for the
Object
lookupWorkingMemory
public ObjectStore getObjectStore()
getObjectStore
in interface InternalWorkingMemory
getObjectStore
in interface InternalWorkingMemoryEntryPoint
public org.kie.api.runtime.rule.FactHandle getFactHandle(Object object)
WorkingMemory
FactHandle
associated with an Object.getFactHandle
in interface WorkingMemory
getFactHandle
in interface org.kie.api.runtime.rule.EntryPoint
object
- The object.WorkingMemory
public org.kie.api.runtime.rule.FactHandle getFactHandleByIdentity(Object object)
InternalWorkingMemory
getFactHandleByIdentity
in interface InternalWorkingMemory
getFactHandleByIdentity
in interface InternalWorkingMemoryEntryPoint
getFactHandleByIdentity
in interface WorkingMemory
WorkingMemory
public Iterator iterateObjects()
iterateObjects
in interface WorkingMemory
public Iterator iterateObjects(org.kie.api.runtime.ObjectFilter filter)
iterateObjects
in interface WorkingMemory
public Iterator iterateFactHandles()
iterateFactHandles
in interface WorkingMemory
public Iterator iterateFactHandles(org.kie.api.runtime.ObjectFilter filter)
iterateFactHandles
in interface WorkingMemory
public QueryResultsImpl getQueryResults(String query)
public void setFocus(String focus)
WorkingMemory
setFocus
in interface WorkingMemory
public org.kie.api.runtime.rule.FactHandle insert(Object object)
WorkingMemoryEntryPoint
insert
in interface WorkingMemoryEntryPoint
insert
in interface org.kie.api.runtime.rule.EntryPoint
object
- The fact object.WorkingMemory
public org.kie.api.runtime.rule.FactHandle insertLogical(Object object)
WorkingMemory
public org.kie.api.runtime.rule.FactHandle insert(Object object, boolean dynamic)
WorkingMemoryEntryPoint
PropertyChangeListeners
on the Object to automatically trigger update
calls
if dynamic
is true
.insert
in interface WorkingMemoryEntryPoint
object
- The fact object.dynamic
- true if Drools should add JavaBean
PropertyChangeListeners
to the object.public org.kie.api.runtime.rule.FactHandle insertLogical(Object object, boolean dynamic)
insertLogical
in interface InternalWorkingMemoryActions
public org.kie.api.runtime.rule.FactHandle insert(Object object, Object tmsValue, boolean dynamic, boolean logical, RuleImpl rule, Activation activation)
insert
in interface InternalWorkingMemoryActions
public void insert(InternalFactHandle handle, Object object, RuleImpl rule, Activation activation, ObjectTypeConf typeConf)
insert
in interface InternalWorkingMemory
public void updateTraits(InternalFactHandle h, BitMask mask, Class<?> modifiedClass, Activation activation)
public <T,K> T don(Activation activation, K core, Collection<Class<? extends Thing>> traits, boolean b, org.kie.internal.runtime.beliefs.Mode[] modes)
public <T,K> T don(Activation activation, K core, Class<T> trait, boolean b, org.kie.internal.runtime.beliefs.Mode[] modes)
public void retract(org.kie.api.runtime.rule.FactHandle handle)
WorkingMemoryEntryPoint
retract
in interface WorkingMemoryEntryPoint
retract
in interface org.kie.api.runtime.rule.EntryPoint
handle
- The fact-handle associated with the fact to retract.public void delete(org.kie.api.runtime.rule.FactHandle handle)
delete
in interface org.kie.api.runtime.rule.EntryPoint
public void delete(org.kie.api.runtime.rule.FactHandle factHandle, RuleImpl rule, Activation activation)
delete
in interface InternalWorkingMemory
delete
in interface InternalWorkingMemoryActions
delete
in interface InternalWorkingMemoryEntryPoint
public EntryPointNode getEntryPointNode()
getEntryPointNode
in interface InternalWorkingMemory
getEntryPointNode
in interface InternalWorkingMemoryEntryPoint
public void update(org.kie.api.runtime.rule.FactHandle handle, Object object)
WorkingMemoryEntryPoint
update
in interface WorkingMemoryEntryPoint
update
in interface org.kie.api.runtime.rule.EntryPoint
handle
- The fact-handle associated with the fact to modify.object
- The new value of the fact.public void update(org.kie.api.runtime.rule.FactHandle factHandle, Object object, BitMask mask, Class<?> modifiedClass, Activation activation)
update
in interface InternalWorkingMemoryActions
update
in interface InternalWorkingMemoryEntryPoint
WorkingMemory
public void executeQueuedActionsForRete()
executeQueuedActionsForRete
in interface InternalWorkingMemory
public void executeQueuedActions()
executeQueuedActions
in interface InternalKnowledgeRuntime
public void queueWorkingMemoryAction(WorkingMemoryAction action)
queueWorkingMemoryAction
in interface InternalKnowledgeRuntime
queueWorkingMemoryAction
in interface InternalWorkingMemory
public Memory getNodeMemory(MemoryFactory node)
JoinMemory
for a particular
JoinNode
.getNodeMemory
in interface InternalWorkingMemory
node
- The JoinNode
key.public void clearNodeMemory(MemoryFactory node)
clearNodeMemory
in interface InternalWorkingMemory
public NodeMemories getNodeMemories()
getNodeMemories
in interface InternalWorkingMemory
public RuleRuntimeEventSupport getRuleRuntimeEventSupport()
getRuleRuntimeEventSupport
in interface EventSupport
public AgendaEventSupport getAgendaEventSupport()
getAgendaEventSupport
in interface EventSupport
public void setAsyncExceptionHandler(AsyncExceptionHandler handler)
setAsyncExceptionHandler
in interface WorkingMemory
handler
- public long getNextPropagationIdCounter()
getNextPropagationIdCounter
in interface InternalWorkingMemory
public long getPropagationIdCounter()
public Lock getLock()
getLock
in interface InternalWorkingMemory
public InternalProcessRuntime getProcessRuntime()
getProcessRuntime
in interface InternalKnowledgeRuntime
getProcessRuntime
in interface InternalWorkingMemory
public org.kie.api.runtime.process.ProcessInstance startProcess(String processId)
WorkingMemory
startProcess
in interface WorkingMemory
startProcess
in interface org.kie.api.runtime.process.ProcessRuntime
public org.kie.api.runtime.process.ProcessInstance startProcess(String processId, Map<String,Object> parameters)
WorkingMemory
startProcess
in interface WorkingMemory
startProcess
in interface org.kie.api.runtime.process.ProcessRuntime
public org.kie.api.runtime.process.ProcessInstance createProcessInstance(String processId, Map<String,Object> parameters)
createProcessInstance
in interface org.kie.api.runtime.process.ProcessRuntime
public org.kie.api.runtime.process.ProcessInstance startProcessInstance(long processInstanceId)
startProcessInstance
in interface org.kie.api.runtime.process.ProcessRuntime
public Collection<org.kie.api.runtime.process.ProcessInstance> getProcessInstances()
WorkingMemory
getProcessInstances
in interface WorkingMemory
getProcessInstances
in interface org.kie.api.runtime.process.ProcessRuntime
public org.kie.api.runtime.process.ProcessInstance getProcessInstance(long processInstanceId)
WorkingMemory
getProcessInstance
in interface WorkingMemory
getProcessInstance
in interface org.kie.api.runtime.process.ProcessRuntime
public org.kie.api.runtime.process.ProcessInstance startProcess(String processId, org.kie.internal.process.CorrelationKey correlationKey, Map<String,Object> parameters)
startProcess
in interface org.kie.internal.process.CorrelationAwareProcessRuntime
public org.kie.api.runtime.process.ProcessInstance createProcessInstance(String processId, org.kie.internal.process.CorrelationKey correlationKey, Map<String,Object> parameters)
createProcessInstance
in interface org.kie.internal.process.CorrelationAwareProcessRuntime
public org.kie.api.runtime.process.ProcessInstance getProcessInstance(org.kie.internal.process.CorrelationKey correlationKey)
getProcessInstance
in interface org.kie.internal.process.CorrelationAwareProcessRuntime
public org.kie.api.runtime.process.ProcessInstance getProcessInstance(long processInstanceId, boolean readOnly)
getProcessInstance
in interface WorkingMemory
getProcessInstance
in interface org.kie.api.runtime.process.ProcessRuntime
public org.kie.api.runtime.process.WorkItemManager getWorkItemManager()
getWorkItemManager
in interface WorkingMemory
getWorkItemManager
in interface org.kie.api.runtime.process.ProcessRuntime
public List iterateObjectsToList()
public List iterateNonDefaultEntryPointObjectsToList()
public Map.Entry[] getActivationParameters(long activationId)
public Map getActivationParameters(Activation activation)
public WorkingMemoryEntryPoint getWorkingMemoryEntryPoint(String name)
WorkingMemory
getWorkingMemoryEntryPoint
in interface WorkingMemory
getWorkingMemoryEntryPoint
in interface WorkingMemoryEntryPoint
name
- the id of the entry point, as defined in the rules filepublic Map<String,WorkingMemoryEntryPoint> getWorkingMemoryEntryPoints()
public ObjectTypeConfigurationRegistry getObjectTypeConfigurationRegistry()
getObjectTypeConfigurationRegistry
in interface InternalWorkingMemory
getObjectTypeConfigurationRegistry
in interface InternalWorkingMemoryEntryPoint
public InternalFactHandle getInitialFactHandle()
getInitialFactHandle
in interface InternalWorkingMemory
public void setInitialFactHandle(InternalFactHandle initialFactHandle)
public TimerService getTimerService()
InternalWorkingMemory
getTimerService
in interface InternalKnowledgeRuntime
getTimerService
in interface InternalWorkingMemory
public org.kie.api.time.SessionClock getSessionClock()
WorkingMemory
getSessionClock
in interface WorkingMemory
getSessionClock
in interface org.kie.api.runtime.KieRuntime
public void startBatchExecution(ExecutionResultImpl results)
startBatchExecution
in interface InternalWorkingMemory
public ExecutionResultImpl getExecutionResult()
getExecutionResult
in interface InternalWorkingMemory
public void endBatchExecution()
endBatchExecution
in interface InternalWorkingMemory
public InternalKnowledgeRuntime getKnowledgeRuntime()
getKnowledgeRuntime
in interface InternalWorkingMemory
public void registerChannel(String name, org.kie.api.runtime.Channel channel)
registerChannel
in interface org.kie.api.runtime.KieRuntime
public void unregisterChannel(String name)
unregisterChannel
in interface org.kie.api.runtime.KieRuntime
public Map<String,org.kie.api.runtime.Channel> getChannels()
InternalWorkingMemory
getChannels
in interface InternalWorkingMemory
getChannels
in interface org.kie.api.runtime.KieRuntime
public long getFactCount()
getFactCount
in interface org.kie.api.runtime.rule.EntryPoint
public long getTotalFactCount()
InternalWorkingMemory
getTotalFactCount
in interface InternalWorkingMemory
public void startOperation()
startOperation
in interface InternalKnowledgeRuntime
startOperation
in interface InternalWorkingMemory
public void setEndOperationListener(EndOperationListener listener)
setEndOperationListener
in interface InternalKnowledgeRuntime
public void endOperation()
endOperation
in interface InternalKnowledgeRuntime
endOperation
in interface InternalWorkingMemory
public long getIdleTime()
getIdleTime
in interface InternalWorkingMemory
public long getLastIdleTimestamp()
getLastIdleTimestamp
in interface InternalKnowledgeRuntime
public void prepareToFireActivation()
InternalWorkingMemory
prepareToFireActivation
in interface InternalWorkingMemory
public void activationFired()
InternalWorkingMemory
activationFired
in interface InternalWorkingMemory
public long getTimeToNextJob()
getTimeToNextJob
in interface InternalWorkingMemory
public org.kie.api.marshalling.ObjectMarshallingStrategyStore getObjectMarshallingStrategyStore()
public void addPropagation(PropagationEntry propagationEntry)
addPropagation
in interface InternalWorkingMemory
public void flushPropagations()
flushPropagations
in interface InternalWorkingMemory
public void flushPropagationsOnFireUntilHalt(boolean fired)
flushPropagationsOnFireUntilHalt
in interface InternalWorkingMemory
public void flushPropagationsOnFireUntilHalt(boolean fired, PropagationEntry propagationEntry)
flushPropagationsOnFireUntilHalt
in interface InternalWorkingMemory
public PropagationEntry takeAllPropagations()
takeAllPropagations
in interface InternalWorkingMemory
public void notifyHalt()
notifyHalt
in interface InternalWorkingMemory
public void flushNonMarshallablePropagations()
flushNonMarshallablePropagations
in interface InternalWorkingMemory
public void notifyEngineInactive()
notifyEngineInactive
in interface InternalWorkingMemory
public boolean hasPendingPropagations()
hasPendingPropagations
in interface InternalWorkingMemory
public Iterator<? extends PropagationEntry> getActionsIterator()
getActionsIterator
in interface InternalWorkingMemory
Copyright © 2001-2015 JBoss by Red Hat. All Rights Reserved.