Class WorkflowVersionDao

    • Constructor Detail

      • WorkflowVersionDao

        public WorkflowVersionDao()
        Creates a new instance of this DAO. Normally you should use the singleton instance provided by DaoProvider.WORKFLOWVERSION_DAO.
    • Method Detail

      • createNewWorkflowVersion

        public WorkflowVersion createNewWorkflowVersion​(Projekt project,
                                                        long versionNumber)
        Description copied from interface: IWorkflowVersionDao
        Creates a new workflow version with the default workflow states and an empty process, but does not persist it yet.
        Specified by:
        createNewWorkflowVersion in interface IWorkflowVersionDao
        Parameters:
        project - Project for which to create a new version.
        versionNumber - Version number of the workflow version.
        Returns:
        A new, non-persisted workflow version.
      • findNewVersionNumber

        public long findNewVersionNumber​(IEntityContext ec,
                                         Projekt project)
        Description copied from interface: IWorkflowVersionDao
        Finds a version number for a new version entity. It is guaranteed that this number is different from all version numbers of the Projekt.getWorkflowVersions() of the given project.
        Specified by:
        findNewVersionNumber in interface IWorkflowVersionDao
        Parameters:
        ec - The current entity context to use for interacting with the database.
        project - The project with workflow versions for which a new version number is sought.
        Returns:
        A new version number different from all version of the given project.
      • getActiveByProject

        public WorkflowVersion getActiveByProject​(IEntityContext ec,
                                                  Projekt project)
        Description copied from interface: IWorkflowVersionDao
        Finds the active workflow version for the given project. Creates a new workflow version when no version exists yet.
        Specified by:
        getActiveByProject in interface IWorkflowVersionDao
        Parameters:
        ec - The current entity context to use for interacting with the database.
        project - The project for which to find the active workflow version.
        Returns:
        The currently active workflow version of the given project. Returns null when the project does not use the new workflow.
      • replaceVersion

        public WorkflowVersion replaceVersion​(IEntityContext ec,
                                              WorkflowVersion oldWorkflowVersion,
                                              WorkflowVersion newWorkflowVersion)
        Description copied from interface: IWorkflowVersionDao
        Replaces the given old workflow version with the data of the new workflow version. Makes sure to persist all processes, tasks, triggers, and nodes as well.

        When oldWorkflowVersion is null, the newWorkflowVersion will be created. When newWorkflowVersion is null, the oldWorkflowVersion will be deleted.

        Specified by:
        replaceVersion in interface IWorkflowVersionDao
        Parameters:
        ec - The current entity context to use for interacting with the database.
        oldWorkflowVersion - Old workflow version to replace.
        newWorkflowVersion - New workflow version to replace the old one.
        Returns:
        The updated workflow version.
      • saveVersion

        public WorkflowVersion saveVersion​(IEntityContext ec,
                                           WorkflowVersion workflowVersion)
        Description copied from interface: IWorkflowVersionDao
        Saves the workflow version. Makes sure to persist all processes, tasks, triggers, and nodes as well.
        Specified by:
        saveVersion in interface IWorkflowVersionDao
        Parameters:
        ec - The current entity context to use for interacting with the database.
        workflowVersion - A workflow version to persist.
        Returns:
        The newly persisted workflow version.
      • loadFullVersion

        public WorkflowVersion loadFullVersion​(IEntityContext ec,
                                               long workflowVersionId)
        Description copied from interface: IWorkflowVersionDao
        Loads the workflow version with the given entity and all associated entities (makes sure lazy associations are initiated).
        Specified by:
        loadFullVersion in interface IWorkflowVersionDao
        Parameters:
        ec - The current entity context to use for interacting with the database.
        workflowVersionId - ID of the workflow version to load.
        Returns:
        The workflow version with the given ID; null when no such version exists.
      • deleteExistingVersion

        public void deleteExistingVersion​(IEntityContext ec,
                                          WorkflowVersion workflowVersion)
        Description copied from interface: IWorkflowVersionDao
        Delete an existing (persisted) workflow version. Makes sure to delete all processes, tasks, triggers, and nodes as well.
        Specified by:
        deleteExistingVersion in interface IWorkflowVersionDao
        Parameters:
        ec - The current entity context to use for interacting with the database.
        workflowVersion - A persisted workflow version to delete.
      • getByVersionNumber

        public WorkflowVersion getByVersionNumber​(IEntityContext ec,
                                                  Projekt project,
                                                  long versionNumber)
        Description copied from interface: IWorkflowVersionDao
        Finds the workflow version with the given version number, if such a version exists.
        Specified by:
        getByVersionNumber in interface IWorkflowVersionDao
        Parameters:
        ec - The current entity context to use for interacting with the database.
        project - The project to search for the workflow version.
        versionNumber - The version number of the workflow version to find.
        Returns:
        The workflow version with the given version number that belong to the given project, or null if no such workflow version exists.