Class XmlWorkflowFactoryImpl

java.lang.Object
org.dspace.xmlworkflow.XmlWorkflowFactoryImpl
All Implemented Interfaces:
XmlWorkflowFactory

public class XmlWorkflowFactoryImpl extends Object implements XmlWorkflowFactory
This is injected with the external workflow configuration and is used to retrieve information about the workflow:
  • the workflow for a certain collection
  • collections mapped to a certain workflow
  • collections not mapped to any workflow
  • configured workflows and the default workflow
  • workflow action by name
Author:
Bram De Schouwer (bram.deschouwer at dot com), Kevin Van de Velde (kevin at atmire dot com), Ben Bosman (ben at atmire dot com), Mark Diggory (markd at atmire dot com), Maria Verdonck (Atmire) on 11/12/2019
  • Field Details

  • Constructor Details

    • XmlWorkflowFactoryImpl

      public XmlWorkflowFactoryImpl()
  • Method Details

    • getWorkflow

      public Workflow getWorkflow(Collection collection) throws WorkflowConfigurationException
      Description copied from interface: XmlWorkflowFactory
      Retrieve the workflow configuration for a single collection
      Specified by:
      getWorkflow in interface XmlWorkflowFactory
      Parameters:
      collection - the collection for which we want our workflow
      Returns:
      the workflow configuration
      Throws:
      WorkflowConfigurationException - occurs if there is a configuration error in the workflow
    • setWorkflowMapping

      @Autowired(required=true) public void setWorkflowMapping(Map<String,Workflow> workflowMapping)
      Inject the mapping from Collection Handle into Workflow.
      Parameters:
      workflowMapping - map from Handle name to Workflow object.
    • getWorkflowByName

      public Workflow getWorkflowByName(String workflowName) throws WorkflowConfigurationException
      Description copied from interface: XmlWorkflowFactory
      Retrieves the workflow configuration by name
      Specified by:
      getWorkflowByName in interface XmlWorkflowFactory
      Parameters:
      workflowName - the name for which we want our workflow
      Returns:
      the workflow configuration
      Throws:
      WorkflowConfigurationException - occurs if there is no workflow configured by that name
    • getDefaultWorkflow

      public Workflow getDefaultWorkflow()
      Description copied from interface: XmlWorkflowFactory
      Gets the default workflow, i.e. the workflow that is mapped to collection=default in workflow.xml
      Specified by:
      getDefaultWorkflow in interface XmlWorkflowFactory
    • getAllConfiguredWorkflows

      public List<Workflow> getAllConfiguredWorkflows()
      Description copied from interface: XmlWorkflowFactory
      Creates a list of all configured workflows, or returns the cache of this if it was already created
      Specified by:
      getAllConfiguredWorkflows in interface XmlWorkflowFactory
      Returns:
      List of all configured workflows
    • getCollectionHandlesMappedToWorkflow

      public List<Collection> getCollectionHandlesMappedToWorkflow(Context context, String workflowName)
      Description copied from interface: XmlWorkflowFactory
      Return a list of collections that are mapped to the given workflow in the workflow configuration. * Makes use of a cache so it only retrieves the workflowName->List if it's not cached
      Specified by:
      getCollectionHandlesMappedToWorkflow in interface XmlWorkflowFactory
      Parameters:
      context - Dspace context
      workflowName - Name of workflow we want the collections of that are mapped to is
      Returns:
      List of collections mapped to the requested workflow
    • getAllNonMappedCollectionsHandles

      public List<Collection> getAllNonMappedCollectionsHandles(Context context)
      Description copied from interface: XmlWorkflowFactory
      Returns list of collections that are not mapped to any configured workflow, and thus use the default workflow
      Specified by:
      getAllNonMappedCollectionsHandles in interface XmlWorkflowFactory
      Returns:
      List of collections not mapped to any workflow
    • workflowByThisNameExists

      public boolean workflowByThisNameExists(String workflowName)
      Description copied from interface: XmlWorkflowFactory
      Check to see if there is a workflow configured by the given name
      Specified by:
      workflowByThisNameExists in interface XmlWorkflowFactory
      Parameters:
      workflowName - Name of a possible configured workflow
      Returns:
      True if there is a workflow configured by this name, false otherwise
    • isDefaultWorkflow

      public boolean isDefaultWorkflow(String workflowName)
      Description copied from interface: XmlWorkflowFactory
      Check to see if the given workflowName is the workflow configured to be default for collections
      Specified by:
      isDefaultWorkflow in interface XmlWorkflowFactory
      Parameters:
      workflowName - Name of workflow to check if default
      Returns:
      True if given workflowName is the workflow mapped to default for collections, otherwise false
    • getActionByName

      public WorkflowActionConfig getActionByName(String workflowActionName)
      Description copied from interface: XmlWorkflowFactory
      Retrieves a WorkflowActionConfig object based on its name, should correspond with bean id in workflow-actions.xml
      Specified by:
      getActionByName in interface XmlWorkflowFactory
      Parameters:
      workflowActionName - Name of workflow action we want to retrieve
      Returns:
      Workflow action object corresponding to the given workflowActionName
    • getStepByName

      public Step getStepByName(String workflowStepName)
      Description copied from interface: XmlWorkflowFactory
      Retrieves a Step object based on its name, should correspond with bean id in workflow.xml
      Specified by:
      getStepByName in interface XmlWorkflowFactory
      Parameters:
      workflowStepName - Name of workflow step we want to retrieve
      Returns:
      Workflow step object corresponding to the given workflowStepName