Package org.flowable.cmmn.api

# Interface CmmnRepositoryService

public interface CmmnRepositoryService

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addCandidateStarterGroup(String caseDefinitionId, String groupId)`
  Authorizes a candidate group for a case definition.
  `void`
  `addCandidateStarterUser(String caseDefinitionId, String userId)`
  Authorizes a candidate user for a case definition.
  `void`
  `changeDeploymentParentDeploymentId(String deploymentId, String newParentDeploymentId)`
  Changes the parent deployment id of a deployment.
  `CaseDefinitionQuery`
  `createCaseDefinitionQuery()`
  Query case definitions
  `CmmnDeploymentBuilder`
  `createDeployment()`
  Starts creating a new deployment
  `CmmnDeploymentQuery`
  `createDeploymentQuery()`
  Query deployments
  `void`
  `deleteCandidateStarterGroup(String caseDefinitionId, String groupId)`
  Removes the authorization of a candidate group for a case definition.
  `void`
  `deleteCandidateStarterUser(String caseDefinitionId, String userId)`
  Removes the authorization of a candidate user for a case definition.
  `void`
  `deleteDeployment(String deploymentId, boolean cascade)`
  Deletes the given deployment and cascade deletion to case instances, history case instances and jobs.
  `CaseDefinition`
  `getCaseDefinition(String caseDefinitionId)`
  Returns the `CaseDefinition` including all CMMN information like additional Properties (e.g. documentation).
  `InputStream`
  `getCaseDiagram(String caseDefinitionId)`
  Gives access to a deployed case diagram, e.g., a PNG image, through a stream of bytes.
  `CmmnModel`
  `getCmmnModel(String caseDefinitionId)`
  Gives access to a deployed case model, e.g., a CMMN 1.1 XML file, through a stream of bytes.
  `List<DmnDecision>`
  `getDecisionsForCaseDefinition(String caseDefinitionId)`
  Retrieves the `DmnDecision`s associated with the given case definition.
  `List<String>`
  `getDeploymentResourceNames(String deploymentId)`
  Retrieves a list of deployment resources for the given deployment, ordered alphabetically.
  `List<org.flowable.form.api.FormDefinition>`
  `getFormDefinitionsForCaseDefinition(String caseDefinitionId)`
  Retrieves the `FormDefinition`s associated with the given case definition.
  `List<IdentityLink>`
  `getIdentityLinksForCaseDefinition(String caseDefinitionId)`
  Retrieves the `IdentityLink`s associated with the given case definition.
  `InputStream`
  `getResourceAsStream(String deploymentId, String resourceName)`
  Gives access to a deployment resource through a stream of bytes.
  `void`
  `setCaseDefinitionCategory(String caseDefinitionId, String category)`
  Sets the category of the case definition.

- ## Method Details

  - ### createDeployment

    CmmnDeploymentBuilder createDeployment()
    Starts creating a new deployment

  - ### getDeploymentResourceNames

    List<String> getDeploymentResourceNames(String deploymentId)
    Retrieves a list of deployment resources for the given deployment, ordered alphabetically.
    Parameters:
      `deploymentId` - id of the deployment, cannot be null.

  - ### getResourceAsStream

    InputStream getResourceAsStream(String deploymentId, String resourceName)
    Gives access to a deployment resource through a stream of bytes.
    Parameters:
      `deploymentId` - id of the deployment, cannot be null.
      `resourceName` - name of the resource, cannot be null.
    Throws:
      `FlowableObjectNotFoundException` - when the resource doesn't exist in the given deployment or when no deployment exists for the given deploymentId.

  - ### getCaseDefinition

    CaseDefinition getCaseDefinition(String caseDefinitionId)
    Returns the `CaseDefinition` including all CMMN information like additional Properties (e.g. documentation).

  - ### getCmmnModel

    CmmnModel getCmmnModel(String caseDefinitionId)
    Gives access to a deployed case model, e.g., a CMMN 1.1 XML file, through a stream of bytes.
    Parameters:
      `caseDefinitionId` - id of a `CaseDefinition`, cannot be null.
    Throws:
      `FlowableObjectNotFoundException` - when the case model doesn't exist.

  - ### getCaseDiagram

    InputStream getCaseDiagram(String caseDefinitionId)
    Gives access to a deployed case diagram, e.g., a PNG image, through a stream of bytes.
    Parameters:
      `caseDefinitionId` - id of a `CaseDefinition`, cannot be null.
    Returns:
      null when the diagram resource name of a `CaseDefinition` is null.
    Throws:
      `FlowableObjectNotFoundException` - when the case diagram doesn't exist.

  - ### deleteDeployment

    void deleteDeployment(String deploymentId, boolean cascade)
    Deletes the given deployment and cascade deletion to case instances, history case instances and jobs.
    Parameters:
      `deploymentId` - id of the deployment, cannot be null.

  - ### createDeploymentQuery

    CmmnDeploymentQuery createDeploymentQuery()
    Query deployments

  - ### createCaseDefinitionQuery

    CaseDefinitionQuery createCaseDefinitionQuery()
    Query case definitions

  - ### addCandidateStarterUser

    void addCandidateStarterUser(String caseDefinitionId, String userId)
    Authorizes a candidate user for a case definition.
    Parameters:
      `caseDefinitionId` - id of the case definition, cannot be null.
      `userId` - id of the user involve, cannot be null.
    Throws:
      `FlowableObjectNotFoundException` - when the case definition or user doesn't exist.

  - ### addCandidateStarterGroup

    void addCandidateStarterGroup(String caseDefinitionId, String groupId)
    Authorizes a candidate group for a case definition.
    Parameters:
      `caseDefinitionId` - id of the case definition, cannot be null.
      `groupId` - id of the group involve, cannot be null.
    Throws:
      `FlowableObjectNotFoundException` - when the case definition or group doesn't exist.

  - ### deleteCandidateStarterUser

    void deleteCandidateStarterUser(String caseDefinitionId, String userId)
    Removes the authorization of a candidate user for a case definition.
    Parameters:
      `caseDefinitionId` - id of the case definition, cannot be null.
      `userId` - id of the user involve, cannot be null.
    Throws:
      `FlowableObjectNotFoundException` - when the case definition or user doesn't exist.

  - ### deleteCandidateStarterGroup

    void deleteCandidateStarterGroup(String caseDefinitionId, String groupId)
    Removes the authorization of a candidate group for a case definition.
    Parameters:
      `caseDefinitionId` - id of the case definition, cannot be null.
      `groupId` - id of the group involve, cannot be null.
    Throws:
      `FlowableObjectNotFoundException` - when the case definition or group doesn't exist.

  - ### getIdentityLinksForCaseDefinition

    List<IdentityLink> getIdentityLinksForCaseDefinition(String caseDefinitionId)
    Retrieves the `IdentityLink`s associated with the given case definition. Such an `IdentityLink` informs how a certain identity (eg. group or user) is authorized for a certain case definition

  - ### setCaseDefinitionCategory

    void setCaseDefinitionCategory(String caseDefinitionId, String category)
    Sets the category of the case definition. Case definitions can be queried by category: see `CaseDefinitionQuery.caseDefinitionCategory(String)`.
    Throws:
      `FlowableObjectNotFoundException` - if no case definition with the provided id can be found.

  - ### changeDeploymentParentDeploymentId

    void changeDeploymentParentDeploymentId(String deploymentId, String newParentDeploymentId)
    Changes the parent deployment id of a deployment. This is used to move deployments to a different app deployment parent.
    Parameters:
      `deploymentId` - The id of the deployment of which the parent deployment identifier will be changed.
      `newParentDeploymentId` - The new parent deployment identifier.

  - ### getDecisionsForCaseDefinition

    List<DmnDecision> getDecisionsForCaseDefinition(String caseDefinitionId)
    Retrieves the `DmnDecision`s associated with the given case definition.
    Parameters:
      `caseDefinitionId` - id of the case definition, cannot be null.

  - ### getFormDefinitionsForCaseDefinition

    List<org.flowable.form.api.FormDefinition> getFormDefinitionsForCaseDefinition(String caseDefinitionId)
    Retrieves the `FormDefinition`s associated with the given case definition.
    Parameters:
      `caseDefinitionId` - id of the case definition, cannot be null.