org.kuali.rice.kew.actions
Class RecallAction

java.lang.Object
  extended by org.kuali.rice.kew.actions.ActionTakenEvent
      extended by org.kuali.rice.kew.actions.ReturnToPreviousNodeAction
          extended by org.kuali.rice.kew.actions.RecallAction

public class RecallAction
extends ReturnToPreviousNodeAction

Since:
2.1

Field Summary
protected  boolean cancel
           
protected  Collection<Recipient> notificationRecipients
           
 
Fields inherited from class org.kuali.rice.kew.actions.ReturnToPreviousNodeAction
DEFAULT_SEND_NOTIFICATIONS, INITIAL_NODE_NAME, nodeName
 
Fields inherited from class org.kuali.rice.kew.actions.ActionTakenEvent
annotation, DEFAULT_ANNOTATION, DEFAULT_QUEUE_DOCUMENT_AFTER_ACTION, DEFAULT_RUN_POSTPROCESSOR_LOGIC, routeHeader
 
Constructor Summary
RecallAction(DocumentRouteHeaderValue routeHeader, PrincipalContract principal)
          Constructor required for ActionRegistry validation
RecallAction(DocumentRouteHeaderValue routeHeader, PrincipalContract principal, String annotation, boolean cancel)
           
RecallAction(DocumentRouteHeaderValue routeHeader, PrincipalContract principal, String annotation, boolean cancel, boolean sendNotifications)
           
RecallAction(DocumentRouteHeaderValue routeHeader, PrincipalContract principal, String annotation, boolean cancel, boolean sendNotifications, boolean runPostProcessorLogic)
           
 
Method Summary
protected  PrincipalContract determineInitialNodePrincipal(DocumentRouteHeaderValue routeHeader)
          Override the default return to previous behavior so that the document is returned to the recaller, not initiator
protected  List<ActionRequestValue> findApplicableActionRequests(List<ActionRequestValue> actionRequests)
          Allows subclasses to determine which actionrequests to inspect for purposes of action validation
protected static ActionTakenValue getLastActionTaken(String docId)
          Returns the last action taken on a document
protected  ActionRequestType getReturnToInitiatorActionRequestType()
          Template method that determines what action request to generate when returning to initiator
 boolean isActionCompatibleRequest(List<ActionRequestValue> requests)
           
protected static Collection<Recipient> parseNotificationRecipients(DocumentRouteHeaderValue routeHeader)
          Parses notification recipients from the RECALL_NOTIFICATION document type policy, if present
 void recordAction()
           
protected  void sendAdditionalNotifications()
          Template method subclasses can use to send addition notification upon a return to previous action.
 String validateActionRules(List<ActionRequestValue> actionRequests)
           
protected  String validateActionsTaken(DocumentRouteHeaderValue rh)
          Determines whether prior actions taken are compatible with recall action by checking the RECALL_VALID_ACTIONSTAKEN document type policy.
protected  String validateRouting(DocumentRouteHeaderValue rh)
          Determines whether the doc's type appears to statically define any routing.
 
Methods inherited from class org.kuali.rice.kew.actions.ReturnToPreviousNodeAction
isSuperUserUsage, setSuperUserUsage, validateActionRules
 
Methods inherited from class org.kuali.rice.kew.actions.ActionTakenEvent
filterActionRequestsByCode, findDelegatorForActionRequests, generateAcknowledgementsToPreviousActionTakers, getActionPerformedCode, getActionRequestService, getActionTakenCode, getDocumentId, getGroupIdsForPrincipal, getPrincipal, getRouteHeader, invokePostProcessor, isActionValid, isPolicySet, isPolicySet, isRunPostProcessorLogic, notifyActionTaken, notifyAfterActionTaken, notifyStatusChange, performAction, queueDocumentProcessing, saveActionTaken, saveActionTaken, saveActionTaken, saveActionTaken, setActionTakenCode, setRouteHeader, updateSearchableAttributesIfPossible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cancel

protected final boolean cancel

notificationRecipients

protected final Collection<Recipient> notificationRecipients
Constructor Detail

RecallAction

public RecallAction(DocumentRouteHeaderValue routeHeader,
                    PrincipalContract principal)
Constructor required for ActionRegistry validation


RecallAction

public RecallAction(DocumentRouteHeaderValue routeHeader,
                    PrincipalContract principal,
                    String annotation,
                    boolean cancel)

RecallAction

public RecallAction(DocumentRouteHeaderValue routeHeader,
                    PrincipalContract principal,
                    String annotation,
                    boolean cancel,
                    boolean sendNotifications)

RecallAction

public RecallAction(DocumentRouteHeaderValue routeHeader,
                    PrincipalContract principal,
                    String annotation,
                    boolean cancel,
                    boolean sendNotifications,
                    boolean runPostProcessorLogic)
Method Detail

parseNotificationRecipients

protected static Collection<Recipient> parseNotificationRecipients(DocumentRouteHeaderValue routeHeader)
Parses notification recipients from the RECALL_NOTIFICATION document type policy, if present

Parameters:
routeHeader - this document
Returns:
notification recipient RuleResponsibilityBos

validateActionRules

public String validateActionRules(List<ActionRequestValue> actionRequests)
Overrides:
validateActionRules in class ReturnToPreviousNodeAction

validateActionsTaken

protected String validateActionsTaken(DocumentRouteHeaderValue rh)
Determines whether prior actions taken are compatible with recall action by checking the RECALL_VALID_ACTIONSTAKEN document type policy.

Parameters:
rh - the DocumentRouteHeaderValue
Returns:
null if valid (policy not specified, no actions taken, or all actions taken are in valid actions taken list), or error message if invalid

validateRouting

protected String validateRouting(DocumentRouteHeaderValue rh)
Determines whether the doc's type appears to statically define any routing. If not, then Recall action doesn't make much sense, and should not be available. Checks whether any document type processes are defined, and if so, whether are are any non-"adhoc" nodes (based on literal node name check).

Parameters:
rh - the DocumentRouteHeaderValue
Returns:
error message if it looks like it's this doc will not route to a person based on static route definition, null (valid) otherwise

findApplicableActionRequests

protected List<ActionRequestValue> findApplicableActionRequests(List<ActionRequestValue> actionRequests)
Description copied from class: ReturnToPreviousNodeAction
Allows subclasses to determine which actionrequests to inspect for purposes of action validation

Overrides:
findApplicableActionRequests in class ReturnToPreviousNodeAction
Parameters:
actionRequests - all actionrequests for this document
Returns:
a (possibly) filtered list of actionrequests

isActionCompatibleRequest

public boolean isActionCompatibleRequest(List<ActionRequestValue> requests)
Overrides:
isActionCompatibleRequest in class ReturnToPreviousNodeAction

getReturnToInitiatorActionRequestType

protected ActionRequestType getReturnToInitiatorActionRequestType()
Description copied from class: ReturnToPreviousNodeAction
Template method that determines what action request to generate when returning to initiator

Overrides:
getReturnToInitiatorActionRequestType in class ReturnToPreviousNodeAction
Returns:
the ActionRequestType

determineInitialNodePrincipal

protected PrincipalContract determineInitialNodePrincipal(DocumentRouteHeaderValue routeHeader)
Override the default return to previous behavior so that the document is returned to the recaller, not initiator

Overrides:
determineInitialNodePrincipal in class ReturnToPreviousNodeAction
Parameters:
routeHeader - the document route header
Returns:
a Principal

sendAdditionalNotifications

protected void sendAdditionalNotifications()
Description copied from class: ReturnToPreviousNodeAction
Template method subclasses can use to send addition notification upon a return to previous action. This occurs after the postprocessors have been called and the node has been changed

Overrides:
sendAdditionalNotifications in class ReturnToPreviousNodeAction

recordAction

public void recordAction()
                  throws InvalidActionTakenException
Overrides:
recordAction in class ReturnToPreviousNodeAction
Throws:
InvalidActionTakenException

getLastActionTaken

protected static ActionTakenValue getLastActionTaken(String docId)
Returns the last action taken on a document

Parameters:
docId - the doc id
Returns:
last action taken on a document


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