Class ModificationStateCalculatorImpl
- java.lang.Object
-
- jetbrains.buildServer.serverSide.impl.ModificationStateCalculatorImpl
-
- All Implemented Interfaces:
ModificationStateCalculator
public class ModificationStateCalculatorImpl extends Object implements ModificationStateCalculator
- Author:
- Pavel.Sher Date: 28.05.2008
-
-
Constructor Summary
Constructors Constructor Description ModificationStateCalculatorImpl(SQLRunnerEx sqlRunner, BuildPromotionManagerEx buildPromotionManager, SecurityContextEx securityContext, PersonalBuildManager personalBuildManager, ProjectManager projectManager, BuildsManager buildsManager, BuildQueue buildQueue, EventDispatcher<BuildServerListener> eventDispatcher)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MergedVcsModificationInfo
createMergedVcsModificationInfo(SVcsModification modification)
Create an object which represents several duplicating modifications as a whole object.Map<SBuildType,BuildPromotion>
findDependentPromotionsFromTargetBuildTypes(Map<SBuildType,SBuild> buildsMap, Predicate<SBuildType> targetBuildTypeFilter)
For specified map of builds finds all promotions depending on these builds directly or transitively in the build types matched by specified predicate.Map<SBuildType,SBuild>
getFirstBuildsWithModificationFixed(SVcsModification modification)
For given VCS modification returns map of build configuration -> build where this modification was fixed (included into the successful build).Map<SBuildType,SBuild>
getFirstBuildsWithModificationIncluded(SVcsModification modification, boolean includeDependentBuilds)
For given VCS modification returns map of build configuration -> build where this modification was included for the first time.SBuild
getLastReachableBuild(SBuildType buildType, SVcsModification modification, String branch)
Returns last reachable build for non-personal modification.Map<SBuildType,SBuild>
getLastReachableBuilds(SVcsModification modification, Map<SBuildType,String> branches)
Returns a map (build type -> last build in this build type reachable from the given modification) (seeModificationStateCalculator.getLastReachableBuild(jetbrains.buildServer.serverSide.SBuildType, jetbrains.buildServer.vcs.SVcsModification, java.lang.String)
).Map<SBuildType,List<SQueuedBuild>>
getQueuedBuilds(Collection<SBuildType> buildTypes, SVcsModification modification)
Find out queued builds of the given buildTypes which are the first candidates (per branch) for containing modification.
-
-
-
Constructor Detail
-
ModificationStateCalculatorImpl
public ModificationStateCalculatorImpl(@NotNull SQLRunnerEx sqlRunner, @NotNull BuildPromotionManagerEx buildPromotionManager, @NotNull SecurityContextEx securityContext, @NotNull PersonalBuildManager personalBuildManager, @NotNull ProjectManager projectManager, @NotNull BuildsManager buildsManager, @NotNull BuildQueue buildQueue, @NotNull EventDispatcher<BuildServerListener> eventDispatcher)
-
-
Method Detail
-
getFirstBuildsWithModificationIncluded
@NotNull public Map<SBuildType,SBuild> getFirstBuildsWithModificationIncluded(@NotNull SVcsModification modification, boolean includeDependentBuilds)
Description copied from interface:ModificationStateCalculator
For given VCS modification returns map of build configuration -> build where this modification was included for the first time. Cancelled builds are ignored.- Specified by:
getFirstBuildsWithModificationIncluded
in interfaceModificationStateCalculator
- Parameters:
modification
- VCS modificationincludeDependentBuilds
- if true snapshot dependent builds with option "Show changes from dependencies" will be added to the result- Returns:
- see above
-
getFirstBuildsWithModificationFixed
@NotNull public Map<SBuildType,SBuild> getFirstBuildsWithModificationFixed(@NotNull SVcsModification modification)
Description copied from interface:ModificationStateCalculator
For given VCS modification returns map of build configuration -> build where this modification was fixed (included into the successful build). Cancelled builds are ignored.- Specified by:
getFirstBuildsWithModificationFixed
in interfaceModificationStateCalculator
- Parameters:
modification
- VCS modification- Returns:
- see above
-
getLastReachableBuilds
@NotNull public Map<SBuildType,SBuild> getLastReachableBuilds(@NotNull SVcsModification modification, @NotNull Map<SBuildType,String> branches)
Description copied from interface:ModificationStateCalculator
Returns a map (build type -> last build in this build type reachable from the given modification) (seeModificationStateCalculator.getLastReachableBuild(jetbrains.buildServer.serverSide.SBuildType, jetbrains.buildServer.vcs.SVcsModification, java.lang.String)
). Values in the map can be null, meaning no reachable build found. Call to this method with several buildTypes is faster than several calls toModificationStateCalculator.getLastReachableBuild(jetbrains.buildServer.serverSide.SBuildType, jetbrains.buildServer.vcs.SVcsModification, java.lang.String)
.- Specified by:
getLastReachableBuilds
in interfaceModificationStateCalculator
- Parameters:
modification
- modification of interestbranches
- map (build type -> branch name)- Returns:
- see above
-
createMergedVcsModificationInfo
@NotNull public MergedVcsModificationInfo createMergedVcsModificationInfo(@NotNull SVcsModification modification)
Description copied from interface:ModificationStateCalculator
Create an object which represents several duplicating modifications as a whole object. The returned object is aware of the current context permissions, i.e. returned modifications are available to the current user.- Specified by:
createMergedVcsModificationInfo
in interfaceModificationStateCalculator
- Parameters:
modification
- modification candidate- Returns:
- see above
-
getLastReachableBuild
@Nullable public SBuild getLastReachableBuild(@NotNull SBuildType buildType, @NotNull SVcsModification modification, @NotNull String branch)
Description copied from interface:ModificationStateCalculator
Returns last reachable build for non-personal modification. For non-dag-based modifications does not calculate reachability, uses result ofSBuildType.getLastChangesStartedBuild()
. For dag-based modifications first tries to find a last build in the default branch, if not found - in the specified branch, if not found - return the latest build among reachable ones.- Specified by:
getLastReachableBuild
in interfaceModificationStateCalculator
- Parameters:
buildType
- buildType of interestmodification
- non-personal modification of interestbranch
- branch where to look for the last build when no build is found in the default branch- Returns:
- see above
-
findDependentPromotionsFromTargetBuildTypes
@NotNull public Map<SBuildType,BuildPromotion> findDependentPromotionsFromTargetBuildTypes(@NotNull Map<SBuildType,SBuild> buildsMap, @NotNull Predicate<SBuildType> targetBuildTypeFilter)
Description copied from interface:ModificationStateCalculator
For specified map of builds finds all promotions depending on these builds directly or transitively in the build types matched by specified predicate.- Specified by:
findDependentPromotionsFromTargetBuildTypes
in interfaceModificationStateCalculator
- Parameters:
buildsMap
- - map of builds- Returns:
-
getQueuedBuilds
@NotNull public Map<SBuildType,List<SQueuedBuild>> getQueuedBuilds(@NotNull Collection<SBuildType> buildTypes, @NotNull SVcsModification modification)
Description copied from interface:ModificationStateCalculator
Find out queued builds of the given buildTypes which are the first candidates (per branch) for containing modification. Builds are sorted by their branch names.- Specified by:
getQueuedBuilds
in interfaceModificationStateCalculator
- Parameters:
buildTypes
- build types, can be personalmodification
- modification to be included into the build- Returns:
- see above
-
-