Interface WorkflowDocumentProvider

All Known Implementing Classes:
DefaultWorkflowDocumentProvider

public interface WorkflowDocumentProvider
Service provider interface for creation and loading of WorkflowDocuments. NOTE: WorkflowDocumentFactory constructs a single global instance, so implementations of this interface must be thread-safe.
Author:
Kuali Rice Team (rice.collab@kuali.org)
  • Method Details

    • createDocument

      WorkflowDocument createDocument(String principalId, String documentTypeName, DocumentUpdate documentUpdate, DocumentContentUpdate documentContentUpdate)
      Creates a new workflow document of the given type with the given initiator.
      Parameters:
      principalId - the document initiator
      documentTypeName - the document type
      documentUpdate - pre-constructed state with which to initialize the document
      documentContentUpdate - pre-constructed document content with which to initialize the document
      Returns:
      a WorkflowDocument object through which to interact with the new workflow document
      Throws:
      IllegalArgumentException - if principalId is null or blank
      IllegalArgumentException - if documentTypeName is null or blank
      IllegalDocumentTypeException - if documentTypeName does not represent a valid document type
    • loadDocument

      WorkflowDocument loadDocument(String principalId, String documentId)
      Loads an existing workflow document.
      Parameters:
      principalId - the principal id under which to perform document actions
      documentId - the id of the document to load
      Returns:
      a WorkflowDocument object through which to interact with the loaded workflow document
      Throws:
      IllegalArgumentException - if principalId is null or blank
      IllegalArgumentException - if documentTypeName is null or blank
      IllegalDocumentTypeException - if the specified document type is not active
      IllegalDocumentTypeException - if the specified document type does not support document creation (in other words, it's a document type that is only used as a parent)
      InvalidActionTakenException - if the supplied principal is not allowed to execute this action
      See Also: