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 MergedVcsModificationInfocreateMergedVcsModificationInfo(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.SBuildgetLastReachableBuild(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:ModificationStateCalculatorFor given VCS modification returns map of build configuration -> build where this modification was included for the first time. Cancelled builds are ignored.- Specified by:
getFirstBuildsWithModificationIncludedin 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:ModificationStateCalculatorFor 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:
getFirstBuildsWithModificationFixedin 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:ModificationStateCalculatorReturns 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:
getLastReachableBuildsin 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:ModificationStateCalculatorCreate 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:
createMergedVcsModificationInfoin 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:ModificationStateCalculatorReturns 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:
getLastReachableBuildin 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:ModificationStateCalculatorFor specified map of builds finds all promotions depending on these builds directly or transitively in the build types matched by specified predicate.- Specified by:
findDependentPromotionsFromTargetBuildTypesin 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:ModificationStateCalculatorFind 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:
getQueuedBuildsin interfaceModificationStateCalculator- Parameters:
buildTypes- build types, can be personalmodification- modification to be included into the build- Returns:
- see above
-
-