org.kuali.rice.kew.impl.support.krms
Class RulesEngineRouteModule

java.lang.Object
  extended by 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 Summary
RulesEngineRouteModule()
           
 
Method Summary
protected  EngineResults executeRulesEngine(RouteContext context, Engine rulesEngine)
           
 List<ActionRequestValue> findActionRequests(RouteContext context)
          Generate action requests for the given RouteContext.
 ExtensionRepositoryService getExtensionRepositoryService()
           
 PeopleFlowRouteModule getPeopleFlowRouteModule()
           
 RouteNodeService getRouteNodeService()
           
protected  Engine getRulesEngine()
           
 boolean isMoreRequestsAvailable(RouteContext context)
          Returns true if this RouteModule has more requests available which it can generate.
protected  RulesEngineExecutor loadRulesEngineExecutor(RouteContext context)
           
protected  void processEngineResults(RouteContext context, EngineResults engineResults)
           
 ResponsibleParty resolveResponsibilityId(String responsibilityId)
          The route module will re-resolve the given responsibilityId and return an object that contains the key to either a user, group, or role.
 void setExtensionRepositoryService(ExtensionRepositoryService extensionRepositoryService)
           
 void setPeopleFlowRouteModule(PeopleFlowRouteModule peopleFlowRouteModule)
           
 void setRouteNodeService(RouteNodeService routeNodeService)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RulesEngineRouteModule

public RulesEngineRouteModule()
Method Detail

findActionRequests

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

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)


Copyright © 2005-2012 The Kuali Foundation. All Rights Reserved.