com.atlassian.bamboo.deployments.versions.service
Class VersionNamingServiceImpl

java.lang.Object
  extended by com.atlassian.bamboo.deployments.versions.service.VersionNamingServiceImpl
All Implemented Interfaces:
VersionNamingService

public class VersionNamingServiceImpl
extends java.lang.Object
implements VersionNamingService


Constructor Summary
VersionNamingServiceImpl(DeploymentProjectDao deploymentProjectDao, DeploymentResultDao deploymentResultDao, ScopedExclusionService exclusionService, DeploymentVersionDao deploymentVersionDao, VariableDefinitionManager variableDefinitionManager, VariableConfigurationService variableConfigurationService, CustomVariableContext customVariableContext)
           
 
Method Summary
 java.lang.String getIncrementedVersionName(java.lang.String versionName)
          Calculates an increment of a version name.
protected  java.lang.String getUniqueVersionName(long deploymentProjectId, java.lang.String versionName)
           
protected  com.atlassian.fugue.Pair<java.lang.String,java.lang.String> getUniqueVersionNameByAutoIncrementing(long deploymentProjectId, MutableVersionNamingScheme versionNamingScheme, java.lang.String nextSubstitutedName)
           
 MutableVersionNamingScheme getVersionNamingSchemeForProject(long deploymentProjectId)
          Get the version naming configuration for a project
 MutableDeploymentVersion nameAndCreateVersion(InternalDeploymentProject deploymentProject, ImmutablePlan linkedPlan, MutableDeploymentVersion deploymentVersion, java.lang.String versionName, java.lang.String nextVersionName, java.util.Map<java.lang.String,VariableDefinitionContext> variables)
          Takes a new deployment version, if new version name supplied, uses that, otherwise generates unique name based on version naming scheme.
 MutableDeploymentVersion renameVersion(long deploymentProjectId, DeploymentVersion deploymentVersion, java.lang.String newVersionName)
          Rename a version.
 MutableVersionNamingScheme updateVersionNamingSchemeForProject(long deploymentProjectId, java.lang.String nextVersionName, boolean autoIncrement, java.util.Set<java.lang.String> variablesToAutoIncrement)
          update the version naming configuration for a project
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VersionNamingServiceImpl

public VersionNamingServiceImpl(DeploymentProjectDao deploymentProjectDao,
                                DeploymentResultDao deploymentResultDao,
                                ScopedExclusionService exclusionService,
                                DeploymentVersionDao deploymentVersionDao,
                                VariableDefinitionManager variableDefinitionManager,
                                VariableConfigurationService variableConfigurationService,
                                CustomVariableContext customVariableContext)
Method Detail

getVersionNamingSchemeForProject

@Nullable
public MutableVersionNamingScheme getVersionNamingSchemeForProject(long deploymentProjectId)
Description copied from interface: VersionNamingService
Get the version naming configuration for a project

Specified by:
getVersionNamingSchemeForProject in interface VersionNamingService
Parameters:
deploymentProjectId - of the project
Returns:
version naming scheme for a project

updateVersionNamingSchemeForProject

@NotNull
public MutableVersionNamingScheme updateVersionNamingSchemeForProject(long deploymentProjectId,
                                                                              java.lang.String nextVersionName,
                                                                              boolean autoIncrement,
                                                                              @NotNull
                                                                              java.util.Set<java.lang.String> variablesToAutoIncrement)
Description copied from interface: VersionNamingService
update the version naming configuration for a project

Specified by:
updateVersionNamingSchemeForProject in interface VersionNamingService
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
variablesToAutoIncrement - variables to increment
Returns:
the updated version naming scheme.

nameAndCreateVersion

@NotNull
public MutableDeploymentVersion nameAndCreateVersion(@NotNull
                                                             InternalDeploymentProject deploymentProject,
                                                             @NotNull
                                                             ImmutablePlan linkedPlan,
                                                             @NotNull
                                                             MutableDeploymentVersion deploymentVersion,
                                                             @Nullable
                                                             java.lang.String versionName,
                                                             @Nullable
                                                             java.lang.String nextVersionName,
                                                             @NotNull
                                                             java.util.Map<java.lang.String,VariableDefinitionContext> variables)
                                              throws WebValidationException
Description copied from interface: VersionNamingService
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.

Specified by:
nameAndCreateVersion in interface VersionNamingService
Parameters:
deploymentProject - the version belongs to
deploymentVersion - 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
public java.lang.String getIncrementedVersionName(@NotNull
                                                          java.lang.String versionName)
Description copied from interface: VersionNamingService
Calculates an increment of a version name. Increments last number in the name. If nothing found to increment will return passed in value.

Specified by:
getIncrementedVersionName in interface VersionNamingService
Parameters:
versionName - to increment
Returns:
incremented version name.

renameVersion

@NotNull
public MutableDeploymentVersion renameVersion(long deploymentProjectId,
                                                      DeploymentVersion deploymentVersion,
                                                      java.lang.String newVersionName)
                                       throws WebValidationException
Description copied from interface: VersionNamingService
Rename a version.

Specified by:
renameVersion in interface VersionNamingService
Returns:
modified version object
Throws:
WebValidationException

getUniqueVersionNameByAutoIncrementing

@Nullable
protected com.atlassian.fugue.Pair<java.lang.String,java.lang.String> getUniqueVersionNameByAutoIncrementing(long deploymentProjectId,
                                                                                                                      MutableVersionNamingScheme versionNamingScheme,
                                                                                                                      java.lang.String nextSubstitutedName)

getUniqueVersionName

protected java.lang.String getUniqueVersionName(long deploymentProjectId,
                                                java.lang.String versionName)


Copyright © 2013 Atlassian Software Systems Pty Ltd. All Rights Reserved.