Package org.flowable.cmmn.api.runtime

# Interface CaseInstanceStartEventSubscriptionModificationBuilder

public interface CaseInstanceStartEventSubscriptionModificationBuilder
A builder API to modify a manually created case start event subscription which was created and registered using the `CmmnRuntimeService.createCaseInstanceStartEventSubscriptionBuilder()` builder API. With this API you can modify one or more such subscriptions like migrating to a specific version of a case definition (if you choose to not automatically migrate then to the latest version upon deployment of a new version).

Author:
  Micha Kiener

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CaseInstanceStartEventSubscriptionModificationBuilder`
  `addCorrelationParameterValue(String parameterName, Object parameterValue)`
  Adds a specific correlation parameter value for the subscription to be modified.
  `CaseInstanceStartEventSubscriptionModificationBuilder`
  `addCorrelationParameterValues(Map<String,Object> parameters)`
  Registers a list of correlation parameter values for the subscription(s) to be modified.
  `CaseInstanceStartEventSubscriptionModificationBuilder`
  `caseDefinitionId(String caseDefinitionId)`
  Set the case definition using its specific id the manually created subscription is based on.
  `void`
  `migrateToCaseDefinition(String caseDefinitionId)`
  Migrate all matching event subscriptions to the specific case definition.
  `void`
  `migrateToLatestCaseDefinition()`
  Migrate all the matching event subscriptions to the latest case definition, which should be done if you want to manually upgrade the subscriptions to the latest version of the case definition.
  `CaseInstanceStartEventSubscriptionModificationBuilder`
  `tenantId(String tenantId)`
  Set the tenant id in case you are running in a multi tenant environment and the event model needs to be retrieved from a specific tenant.

- ## Method Details

  - ### caseDefinitionId

    CaseInstanceStartEventSubscriptionModificationBuilder caseDefinitionId(String caseDefinitionId)
    Set the case definition using its specific id the manually created subscription is based on. This is mandatory and must be provided.
    Parameters:
      `caseDefinitionId` - the id of the case definition the subscription is based on (an exact version of it)
    Returns:
      the builder to be used for method chaining

  - ### tenantId

    CaseInstanceStartEventSubscriptionModificationBuilder tenantId(String tenantId)
    Set the tenant id in case you are running in a multi tenant environment and the event model needs to be retrieved from a specific tenant.
    Parameters:
      `tenantId` - the id of the tenant the subscription is created for
    Returns:
      the builder to be used for method chaining

  - ### addCorrelationParameterValue

    CaseInstanceStartEventSubscriptionModificationBuilder addCorrelationParameterValue(String parameterName, Object parameterValue)
    Adds a specific correlation parameter value for the subscription to be modified. If you register the same correlation parameter values as when creating and registering the event subscription, only that particular one will be modified with this builder. If you want to modify all manually created subscriptions, don't register any correlation parameter values, which would result in all matching the provided case definition and event-registry start event will be modified.
    Parameters:
      `parameterName` - the name of the correlation parameter
      `parameterValue` - the value of the correlation parameter
    Returns:
      the builder to be used for method chaining

  - ### addCorrelationParameterValues

    CaseInstanceStartEventSubscriptionModificationBuilder addCorrelationParameterValues(Map<String,Object> parameters)
    Registers a list of correlation parameter values for the subscription(s) to be modified.
    Parameters:
      `parameters` - the map of correlation parameter values to be registered for the subscription
    Returns:
      the builder to be used for method chaining

  - ### migrateToLatestCaseDefinition

    void migrateToLatestCaseDefinition()
    Migrate all the matching event subscriptions to the latest case definition, which should be done if you want to manually upgrade the subscriptions to the latest version of the case definition.

  - ### migrateToCaseDefinition

    void migrateToCaseDefinition(String caseDefinitionId)
    Migrate all matching event subscriptions to the specific case definition.
    Parameters:
      `caseDefinitionId` - the id of the case definition to migrate to