Interface VersionNamingService

All Known Implementing Classes:
VersionNamingServiceImpl

@Internal public interface VersionNamingService
Internal Service for managing version names. Manages concurrent operations around version names.
  • Method Details

    • getVersionNamingSchemeForProject

      @Nullable @Nullable MutableVersionNamingScheme getVersionNamingSchemeForProject(long deploymentProjectId)
      Get the version naming configuration for a project
      Parameters:
      deploymentProjectId - of the project
      Returns:
      version naming scheme for a project
    • updateVersionNamingSchemeForProject

      @NotNull @NotNull MutableVersionNamingScheme updateVersionNamingSchemeForProject(long deploymentProjectId, String nextVersionName, boolean autoIncrement, boolean applicableToBranches, @NotNull @NotNull Set<String> variablesToAutoIncrement)
      update the version naming configuration for a project
      Parameters:
      deploymentProjectId - of the project
      nextVersionName - the value to be used for the next version name
      autoIncrement - whether the version name should be auto-incremented
      applicableToBranches - whether the same scheme should be used with branches
      variablesToAutoIncrement - variables to increment
      Returns:
      the updated version naming scheme.
    • nameAndCreateVersion

      @NotNull @NotNull MutableDeploymentVersion nameAndCreateVersion(@NotNull @NotNull InternalDeploymentProject deploymentProject, @NotNull @NotNull ImmutablePlan linkedPlan, @NotNull @NotNull MutableDeploymentVersion version, @Nullable @Nullable String versionName, @Nullable @Nullable String nextVersionName, @NotNull @NotNull Map<String,VariableDefinitionContext> variables) throws WebValidationException
      Takes a new deployment version, if new version name supplied, uses that, otherwise generates unique name based on version naming scheme. Version is then saved and the version naming scheme updated with the next version name.
      Parameters:
      deploymentProject - the version belongs to
      version - the version to be named and saved.
      versionName - (optional) name to be used for this version
      nextVersionName - (optional) the value the next version name should be set to.
      variables - map containing variables available for version name creation (doesn't have to contain GLOBAL and SYSTEM variables)
      Returns:
      the persisted version.
      Throws:
      WebValidationException - on any error
    • getIncrementedVersionName

      @NotNull @NotNull String getIncrementedVersionName(@NotNull @NotNull String versionName)
      Calculates an increment of a version name. Increments last number in the name. If nothing found to increment will return passed in value.
      Parameters:
      versionName - to increment
      Returns:
      incremented version name.
    • renameVersion

      @NotNull @NotNull MutableDeploymentVersion renameVersion(long deploymentProjectId, DeploymentVersion deploymentVersion, String newVersionName) throws WebValidationException
      Rename a version.
      Parameters:
      deploymentProjectId -
      deploymentVersion -
      newVersionName -
      Returns:
      modified version object
      Throws:
      WebValidationException