Class RulesEngineRouteModule

java.lang.Object
org.kuali.rice.kew.impl.support.krms.RulesEngineRouteModule
All Implemented Interfaces:
RouteModule

public class RulesEngineRouteModule extends Object implements RouteModule
An implementation of a RouteModule which executes the KRMS rules engine using the configured RulesEngineExecutor. It then interprets those results and processes them, which may include instantiating and delegating to another RouteModule. Currently, this implementation only supports PeopleFlow results returned from KRMS and passes those off to the PeopleFlowRouteModule.
Author:
Kuali Rice Team (rice.collab@kuali.org)
  • Constructor Details

    • RulesEngineRouteModule

      public RulesEngineRouteModule()
  • Method Details

    • findActionRequests

      public List<ActionRequestValue> findActionRequests(RouteContext context) throws Exception
      Description copied from interface: RouteModule
      Generate action requests for the given RouteContext.

      The list of requests returned should only contain root action requests (those with no parent).

      Specified by:
      findActionRequests in interface RouteModule
      Returns:
      A List of the generated ActionRequestValue objects.
      Throws:
      Exception
    • resolveResponsibilityId

      public ResponsibleParty resolveResponsibilityId(String responsibilityId) throws WorkflowException
      Description copied from interface: RouteModule
      The route module will re-resolve the given responsibilityId and return an object that contains the key to either a user, group, or role. The original responsibility associated with the given id will then be swapped with the new ResponsibleParty when routing is resolved.

      This method is intended to allow for the calling code to be able to "switch-out" one responsibility for another (in the case of a change to an assigned reponsibility).

      Returning null from this method will indicate that the original responsibile party should remain unchanged. This is typically the recommended default for implementation of this method and covers most use cases.

      Specified by:
      resolveResponsibilityId in interface RouteModule
      Parameters:
      responsibilityId - the id of the responsibility to be resolved
      Returns:
      the responsibility party with which to replace the original responsibility, or null if the responsibility should remain unchanged.
      Throws:
      WorkflowException
    • isMoreRequestsAvailable

      public boolean isMoreRequestsAvailable(RouteContext context)
      Description copied from interface: RouteModule
      Returns true if this RouteModule has more requests available which it can generate. This method will only be called after the first set of action requests returned by the first invocation of findActionRequests have been fully activated. If this method returns true, findActionRequests will be invoked again and those requests will all be activated before the cycle continues until this method returns false;
      Specified by:
      isMoreRequestsAvailable in interface RouteModule
      Parameters:
      context - the route context
      Returns:
      true if this route module has more requests it can generate, false otherwise
    • executeRulesEngine

      protected EngineResults executeRulesEngine(RouteContext context, Engine rulesEngine)
    • processEngineResults

      protected void processEngineResults(RouteContext context, EngineResults engineResults)
    • loadRulesEngineExecutor

      protected RulesEngineExecutor loadRulesEngineExecutor(RouteContext context)
    • getRulesEngine

      protected Engine getRulesEngine()
    • getPeopleFlowRouteModule

      public PeopleFlowRouteModule getPeopleFlowRouteModule()
    • setPeopleFlowRouteModule

      public void setPeopleFlowRouteModule(PeopleFlowRouteModule peopleFlowRouteModule)
    • getExtensionRepositoryService

      public ExtensionRepositoryService getExtensionRepositoryService()
    • setExtensionRepositoryService

      public void setExtensionRepositoryService(ExtensionRepositoryService extensionRepositoryService)
    • getRouteNodeService

      public RouteNodeService getRouteNodeService()
    • setRouteNodeService

      public void setRouteNodeService(RouteNodeService routeNodeService)