Interface WorkingMemory

    • 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.
        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.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 -
      • getGlobalResolver

        GlobalResolver getGlobalResolver()
        Returns the current GlobalResolver
        Returns:
      • fireAllRules

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

        int fireAllRules​(org.kie.api.runtime.rule.AgendaFilter agendaFilter)
        Fire all items on the agenda until empty, using the given AgendaFiler
      • fireAllRules

        int fireAllRules​(int fireLimit)
        Fire all items on the agenda until empty or at most 'fireLimit' rules have fired
      • 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
      • getObject

        Object getObject​(org.kie.api.runtime.rule.FactHandle handle)
        Retrieve the object associated with a FactHandle.
        Specified by:
        getObject in interface org.kie.api.runtime.rule.EntryPoint
        Parameters:
        handle - The fact handle.
        Returns:
        The associated object.
      • getFactHandle

        org.kie.api.runtime.rule.FactHandle getFactHandle​(Object object)
        Retrieve the FactHandle associated with an Object.
        Specified by:
        getFactHandle in interface org.kie.api.runtime.rule.EntryPoint
        Parameters:
        object - The object.
        Returns:
        The associated fact handle.
      • 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
        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
      • getSessionClock

        org.kie.api.time.SessionClock getSessionClock()
        Returns the session clock instance associated with this session
        Returns: