Class ProcessDefinitionManager

java.lang.Object
org.camunda.bpm.engine.impl.persistence.AbstractManager
org.camunda.bpm.engine.impl.persistence.entity.ProcessDefinitionManager
All Implemented Interfaces:
Session, AbstractResourceDefinitionManager<ProcessDefinitionEntity>

public class ProcessDefinitionManager extends AbstractManager implements AbstractResourceDefinitionManager<ProcessDefinitionEntity>
Author:
Tom Baeyens, Falko Menge, Saeid Mirzaei, Christopher Zell
  • Field Details

  • Constructor Details

    • ProcessDefinitionManager

      public ProcessDefinitionManager()
  • Method Details

    • insertProcessDefinition

      public void insertProcessDefinition(ProcessDefinitionEntity processDefinition)
    • findLatestProcessDefinitionByKey

      public ProcessDefinitionEntity findLatestProcessDefinitionByKey(String processDefinitionKey)
      Returns:
      the latest version of the process definition with the given key (from any tenant)
      Throws:
      ProcessEngineException - if more than one tenant has a process definition with the given key
      See Also:
    • findLatestProcessDefinitionsByKey

      public List<ProcessDefinitionEntity> findLatestProcessDefinitionsByKey(String processDefinitionKey)
      Returns:
      the latest versions of the process definition with the given key (from any tenant), contains multiple elements if more than one tenant has a process definition with the given key
      See Also:
    • findLatestProcessDefinitionByKeyAndTenantId

      public ProcessDefinitionEntity findLatestProcessDefinitionByKeyAndTenantId(String processDefinitionKey, String tenantId)
      Returns:
      the latest version of the process definition with the given key and tenant id
      See Also:
    • findLatestProcessDefinitionById

      public ProcessDefinitionEntity findLatestProcessDefinitionById(String processDefinitionId)
    • findProcessDefinitionsByQueryCriteria

      public List<ProcessDefinition> findProcessDefinitionsByQueryCriteria(ProcessDefinitionQueryImpl processDefinitionQuery, Page page)
    • findProcessDefinitionCountByQueryCriteria

      public long findProcessDefinitionCountByQueryCriteria(ProcessDefinitionQueryImpl processDefinitionQuery)
    • findProcessDefinitionByDeploymentAndKey

      public ProcessDefinitionEntity findProcessDefinitionByDeploymentAndKey(String deploymentId, String processDefinitionKey)
    • findProcessDefinitionByKeyVersionAndTenantId

      public ProcessDefinitionEntity findProcessDefinitionByKeyVersionAndTenantId(String processDefinitionKey, Integer processDefinitionVersion, String tenantId)
    • findProcessDefinitionByKeyVersionTagAndTenantId

      public ProcessDefinitionEntity findProcessDefinitionByKeyVersionTagAndTenantId(String processDefinitionKey, String processDefinitionVersionTag, String tenantId)
    • findProcessDefinitionByKeyVersionOrVersionTag

      protected ProcessDefinitionEntity findProcessDefinitionByKeyVersionOrVersionTag(String processDefinitionKey, Integer processDefinitionVersion, String processDefinitionVersionTag, String tenantId)
    • findProcessDefinitionsByKey

      public List<ProcessDefinition> findProcessDefinitionsByKey(String processDefinitionKey)
    • findProcessDefinitionsStartableByUser

      public List<ProcessDefinition> findProcessDefinitionsStartableByUser(String user)
    • findPreviousProcessDefinitionId

      public String findPreviousProcessDefinitionId(String processDefinitionKey, Integer version, String tenantId)
    • findProcessDefinitionsByDeploymentId

      public List<ProcessDefinition> findProcessDefinitionsByDeploymentId(String deploymentId)
    • findProcessDefinitionsByKeyIn

      public List<ProcessDefinition> findProcessDefinitionsByKeyIn(String... keys)
    • findDefinitionsByKeyAndTenantId

      public List<ProcessDefinition> findDefinitionsByKeyAndTenantId(String processDefinitionKey, String tenantId, boolean isTenantIdSet)
    • findDefinitionsByIds

      public List<ProcessDefinition> findDefinitionsByIds(Set<String> processDefinitionIds)
    • updateProcessDefinitionSuspensionStateById

      public void updateProcessDefinitionSuspensionStateById(String processDefinitionId, SuspensionState suspensionState)
    • updateProcessDefinitionSuspensionStateByKey

      public void updateProcessDefinitionSuspensionStateByKey(String processDefinitionKey, SuspensionState suspensionState)
    • updateProcessDefinitionSuspensionStateByKeyAndTenantId

      public void updateProcessDefinitionSuspensionStateByKeyAndTenantId(String processDefinitionKey, String tenantId, SuspensionState suspensionState)
    • cascadeDeleteProcessInstancesForProcessDefinition

      protected void cascadeDeleteProcessInstancesForProcessDefinition(String processDefinitionId, boolean skipCustomListeners, boolean skipIoMappings)
      Cascades the deletion of the process definition to the process instances. Skips the custom listeners if the flag was set to true.
      Parameters:
      processDefinitionId - the process definition id
      skipCustomListeners - true if the custom listeners should be skipped at process instance deletion
      skipIoMappings - specifies whether input/output mappings for tasks should be invoked
    • cascadeDeleteHistoryForProcessDefinition

      protected void cascadeDeleteHistoryForProcessDefinition(String processDefinitionId)
      Cascades the deletion of a process definition to the history, deletes the history.
      Parameters:
      processDefinitionId - the process definition id
    • deleteTimerStartEventsForProcessDefinition

      protected void deleteTimerStartEventsForProcessDefinition(ProcessDefinition processDefinition)
      Deletes the timer start events for the given process definition.
      Parameters:
      processDefinition - the process definition
    • deleteSubscriptionsForProcessDefinition

      public void deleteSubscriptionsForProcessDefinition(String processDefinitionId)
      Deletes the subscriptions for the process definition, which is identified by the given process definition id.
      Parameters:
      processDefinitionId - the id of the process definition
    • deleteProcessDefinition

      public void deleteProcessDefinition(ProcessDefinition processDefinition, String processDefinitionId, boolean cascadeToHistory, boolean cascadeToInstances, boolean skipCustomListeners, boolean skipIoMappings)
      Deletes the given process definition from the database and cache. If cascadeToHistory and cascadeToInstances is set to true it deletes the history and the process instances. *Note*: If more than one process definition, from one deployment, is deleted in a single transaction and the cascadeToHistory and cascadeToInstances flag was set to true it can cause a dirty deployment cache. The process instances of ALL process definitions must be deleted, before every process definition can be deleted! In such cases the cascadeToInstances flag have to set to false! On deletion of all process instances, the task listeners will be deleted as well. Deletion of tasks and listeners needs the redeployment of deployments. It can cause to problems if is done sequential with the deletion of process definition in a single transaction. *For example*: Deployment contains two process definition. First process definition and instances will be removed, also cleared from the cache. Second process definition will be removed and his instances. Deletion of instances will cause redeployment this deploys again first into the cache. Only the second will be removed from cache and first remains in the cache after the deletion process.
      Parameters:
      processDefinition - the process definition which should be deleted
      processDefinitionId - the id of the process definition
      cascadeToHistory - if true the history will deleted as well
      cascadeToInstances - if true the process instances are deleted as well
      skipCustomListeners - if true skips the custom listeners on deletion of instances
      skipIoMappings - specifies whether input/output mappings for tasks should be invoked
    • createDefaultAuthorizations

      protected void createDefaultAuthorizations(ProcessDefinition processDefinition)
    • configureProcessDefinitionQuery

      protected void configureProcessDefinitionQuery(ProcessDefinitionQueryImpl query)
    • configureParameterizedQuery

      protected ListQueryParameterObject configureParameterizedQuery(Object parameter)
    • findLatestDefinitionByKey

      public ProcessDefinitionEntity findLatestDefinitionByKey(String key)
      Specified by:
      findLatestDefinitionByKey in interface AbstractResourceDefinitionManager<ProcessDefinitionEntity>
    • findLatestDefinitionById

      public ProcessDefinitionEntity findLatestDefinitionById(String id)
      Specified by:
      findLatestDefinitionById in interface AbstractResourceDefinitionManager<ProcessDefinitionEntity>
    • getCachedResourceDefinitionEntity

      public ProcessDefinitionEntity getCachedResourceDefinitionEntity(String definitionId)
      Specified by:
      getCachedResourceDefinitionEntity in interface AbstractResourceDefinitionManager<ProcessDefinitionEntity>
    • findLatestDefinitionByKeyAndTenantId

      public ProcessDefinitionEntity findLatestDefinitionByKeyAndTenantId(String definitionKey, String tenantId)
      Specified by:
      findLatestDefinitionByKeyAndTenantId in interface AbstractResourceDefinitionManager<ProcessDefinitionEntity>
    • findDefinitionByKeyVersionAndTenantId

      public ProcessDefinitionEntity findDefinitionByKeyVersionAndTenantId(String definitionKey, Integer definitionVersion, String tenantId)
      Specified by:
      findDefinitionByKeyVersionAndTenantId in interface AbstractResourceDefinitionManager<ProcessDefinitionEntity>
    • findDefinitionByKeyVersionTagAndTenantId

      public ProcessDefinitionEntity findDefinitionByKeyVersionTagAndTenantId(String definitionKey, String definitionVersionTag, String tenantId)
      Specified by:
      findDefinitionByKeyVersionTagAndTenantId in interface AbstractResourceDefinitionManager<ProcessDefinitionEntity>
    • findDefinitionByDeploymentAndKey

      public ProcessDefinitionEntity findDefinitionByDeploymentAndKey(String deploymentId, String definitionKey)
      Specified by:
      findDefinitionByDeploymentAndKey in interface AbstractResourceDefinitionManager<ProcessDefinitionEntity>