Class ActionTakenEvent

java.lang.Object
org.kuali.rice.kew.actions.ActionTakenEvent
Direct Known Subclasses:
AcknowledgeAction, AdHocAction, ApproveAction, BlanketApproveAction, CancelAction, ClearFYIAction, CompleteAction, DisapproveAction, LogDocumentActionAction, MoveDocumentAction, ReleaseWorkgroupAuthority, ReturnToPreviousNodeAction, RevokeAdHocAction, RouteDocumentAction, SaveActionEvent, SuperUserActionRequestApproveEvent, SuperUserApproveEvent, SuperUserCancelEvent, SuperUserDisapproveEvent, SuperUserNodeApproveEvent, SuperUserReturnToPreviousNodeAction, TakeWorkgroupAuthority

public abstract class ActionTakenEvent extends Object
Super class containing mostly often used methods by all actions. Holds common state as well, DocumentRouteHeaderValue document, ActionTakenValue action taken (once saved), PrincipalContract principal that has taken the action
Author:
Kuali Rice Team (rice.collab@kuali.org)
  • Field Details

    • DEFAULT_QUEUE_DOCUMENT_AFTER_ACTION

      protected static final boolean DEFAULT_QUEUE_DOCUMENT_AFTER_ACTION
      Default value for queueing document after the action is recorded
      See Also:
    • DEFAULT_RUN_POSTPROCESSOR_LOGIC

      protected static final boolean DEFAULT_RUN_POSTPROCESSOR_LOGIC
      Default value for running postprocessor logic after the action is recorded. Inspected when queueing document processing and notifying postprocessors of action taken and doc status change
      See Also:
    • DEFAULT_ANNOTATION

      protected static final String DEFAULT_ANNOTATION
      Default annotation - none.
    • annotation

      protected final String annotation
    • routeHeader

      protected DocumentRouteHeaderValue routeHeader
      This is in spirit immutable, however for expediency it is mutable as at least one action (ReturnToPreviousNodeAction) attempts to reload the route header after every pp notification.
  • Constructor Details

    • ActionTakenEvent

      public ActionTakenEvent(String actionTakenCode, DocumentRouteHeaderValue routeHeader, org.kuali.rice.kim.api.identity.principal.PrincipalContract principal)
    • ActionTakenEvent

      public ActionTakenEvent(String actionTakenCode, DocumentRouteHeaderValue routeHeader, org.kuali.rice.kim.api.identity.principal.PrincipalContract principal, String annotation)
    • ActionTakenEvent

      public ActionTakenEvent(String actionTakenCode, DocumentRouteHeaderValue routeHeader, org.kuali.rice.kim.api.identity.principal.PrincipalContract principal, String annotation, boolean runPostProcessorLogic)
    • ActionTakenEvent

      public ActionTakenEvent(String actionTakenCode, DocumentRouteHeaderValue routeHeader, org.kuali.rice.kim.api.identity.principal.PrincipalContract principal, String annotation, boolean runPostProcessorLogic, boolean queueDocumentAfterAction)
  • Method Details

    • getActionRequestService

      public ActionRequestService getActionRequestService()
    • getRouteHeader

      protected DocumentRouteHeaderValue getRouteHeader()
    • setRouteHeader

      protected void setRouteHeader(DocumentRouteHeaderValue routeHeader)
    • getPrincipal

      protected org.kuali.rice.kim.api.identity.principal.PrincipalContract getPrincipal()
    • getActionPerformedCode

      protected String getActionPerformedCode()
      Code of the action performed by the user Method may be overridden is action performed will be different than action taken
      Returns:
    • isActionValid

      protected boolean isActionValid()
      Validates whether or not this action is valid for the given principal and DocumentRouteHeaderValue.
    • isPolicySet

      protected static boolean isPolicySet(DocumentType docType, org.kuali.rice.kew.api.doctype.DocumentTypePolicy policy, boolean deflt)
      Determines whether a specific policy is set on the document type.
      Parameters:
      docType - the document type
      policy - the DocumentTypePolicy
      deflt - the default value if the policy is not present
      Returns:
      the policy value or deflt if missing
    • isPolicySet

      protected static boolean isPolicySet(DocumentType docType, org.kuali.rice.kew.api.doctype.DocumentTypePolicy policy)
      Determines whether a specific policy is set on the document type.
      Parameters:
      docType - the document type
      policy - the DocumentTypePolicy
      Returns:
      the policy value or false if missing
    • validateActionRules

      public abstract String validateActionRules()
      Placeholder for validation rules for each action
      Returns:
      error message string of specific error message
    • validateActionRules

      protected abstract String validateActionRules(List<ActionRequestValue> actionRequests)
    • filterActionRequestsByCode

      protected List<ActionRequestValue> filterActionRequestsByCode(List<ActionRequestValue> actionRequests, String requestCode)
      Filters action requests based on if they occur after the given requestCode, and if they relate to this event's principal
      Parameters:
      actionRequests - the List of ActionRequestValues to filter
      requestCode - the request code for all ActionRequestValues to be after
      Returns:
      the filtered List of ActionRequestValues
    • isActionCompatibleRequest

      protected boolean isActionCompatibleRequest(List<ActionRequestValue> requests)
    • performAction

      public void performAction() throws org.kuali.rice.kew.api.exception.InvalidActionTakenException
      Throws:
      org.kuali.rice.kew.api.exception.InvalidActionTakenException
    • recordAction

      protected abstract void recordAction() throws org.kuali.rice.kew.api.exception.InvalidActionTakenException
      Throws:
      org.kuali.rice.kew.api.exception.InvalidActionTakenException
    • updateSearchableAttributesIfPossible

      protected void updateSearchableAttributesIfPossible()
    • invokePostProcessor

      protected void invokePostProcessor(String message, Callable<org.kuali.rice.kew.framework.postprocessor.ProcessDocReport> invocation)
      Wraps PostProcessor invocation with error handling
      Parameters:
      message - log message
      invocation - the callable that invokes the postprocessor
    • notifyActionTaken

      protected void notifyActionTaken(ActionTakenValue actionTaken)
    • notifyAfterActionTaken

      protected void notifyAfterActionTaken(ActionTakenValue actionTaken)
    • notifyStatusChange

      protected void notifyStatusChange(String newStatusCode, String oldStatusCode) throws org.kuali.rice.kew.api.exception.InvalidActionTakenException
      Throws:
      org.kuali.rice.kew.api.exception.InvalidActionTakenException
    • queueDocumentProcessing

      protected void queueDocumentProcessing()
      Asynchronously queues the documented to be processed by the workflow engine.
    • saveActionTaken

      protected ActionTakenValue saveActionTaken()
    • saveActionTaken

      protected ActionTakenValue saveActionTaken(Boolean currentInd)
    • saveActionTaken

      protected ActionTakenValue saveActionTaken(Recipient delegator)
    • saveActionTaken

      protected ActionTakenValue saveActionTaken(Boolean currentInd, Recipient delegator)
    • findDelegatorForActionRequests

      protected Recipient findDelegatorForActionRequests(List actionRequests)
      Returns the highest priority delegator in the list of action requests.
    • getActionTakenCode

      public String getActionTakenCode()
    • setActionTakenCode

      protected void setActionTakenCode(String string)
    • getDocumentId

      protected String getDocumentId()
    • isRunPostProcessorLogic

      protected boolean isRunPostProcessorLogic()
    • getGroupIdsForPrincipal

      protected List<String> getGroupIdsForPrincipal()
    • generateAcknowledgementsToPreviousActionTakers

      protected void generateAcknowledgementsToPreviousActionTakers(RouteNodeInstance notificationNodeInstance)
      Utility for generating Acknowledgements to previous document action takers. Note that in constrast with other notification-generation methods (such as those in ActionRequestFactory) this method determines its recipient list from ActionTakenValues, not from outstanding ActionRequests.
      Parameters:
      notificationNodeInstance - the node instance with which generated actionrequests will be associated
      See Also: