Package com.atlassian.bamboo.build
Class PlanDependencyManagerImpl
- java.lang.Object
-
- com.atlassian.bamboo.build.PlanDependencyManagerImpl
-
- All Implemented Interfaces:
PlanDependencyManager
public class PlanDependencyManagerImpl extends Object implements PlanDependencyManager
-
-
Constructor Summary
Constructors Constructor Description PlanDependencyManagerImpl(PlanDependencyDao planDependencyDao, PlanManager planManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
adjustChildDependencyList(@NotNull String dependencyType, @NotNull Plan plan, @NotNull Set<PlanKey> newChildPlanKeys, boolean overwriteExisting)
Update the existing children dependencies of the given plan and dependency Type to match the provided list of new children.void
adjustParentDependencyList(@NotNull String dependencyKey, @NotNull Plan childPlan, @NotNull Set<PlanKey> newParentPlanKeys, boolean overwriteExisting)
Update the existing parent dependencies of the given plan and dependency Type to match the provided list of new parents.@NotNull Set<PlanDependency>
getAllDependencies()
Retrieves all dependency relationships in the system regardless of the plan involved@NotNull Set<String>
getChildChainKeys(@NotNull PlanIdentifier plan)
Retrieves all chain that are children of the current plan@NotNull Set<PlanDependency>
getChildPlanDependencies(@NotNull PlanIdentifier plan)
Retrieves all plan dependencies in which the given plan features as a parent@NotNull Set<String>
getChildPlanKeys(@NotNull PlanIdentifier plan)
Retrievs all plan that are children of the current planSet<ImmutablePlan>
getEffectiveChildPlans(@NotNull ImmutablePlan chain)
Set<ImmutablePlan>
getEffectiveParentPlans(@NotNull ImmutablePlan chain)
@NotNull Set<String>
getNotEditableChildKeys(@NotNull PlanIdentifier plan)
Retrieves a list of keys representing the children that are not editable of the given plan@NotNull Set<String>
getNotEditableParentKeys(@NotNull PlanIdentifier plan)
Retrieves a list of keys representing the children that are not editable of the given plan@NotNull Set<String>
getParentChainKeys(@NotNull PlanIdentifier plan)
Retrieves all chain that are children of the current plan@NotNull Set<PlanDependency>
getParentPlanDependencies(@NotNull PlanIdentifier plan)
Retrieves all plan dependencies in which the given plan features as a child@NotNull Set<String>
getParentPlanKeys(@NotNull PlanIdentifier plan)
Retrievs all plans that are a parent of the current planvoid
removeAllDependenciesForPlan(@NotNull PlanIdentifier plan)
Deletes any existing dependency featuring the given plan.boolean
savePlanDependency(@Nullable PlanDependency dependency)
Save the given dependency.@NotNull ErrorCollection
validateChildDependencyList(@NotNull String dependencyType, @NotNull Plan plan, @NotNull Set<PlanKey> newChildPlanKeys, boolean overwriteExisting)
Validate child dependency list
-
-
-
Constructor Detail
-
PlanDependencyManagerImpl
@Inject public PlanDependencyManagerImpl(PlanDependencyDao planDependencyDao, PlanManager planManager)
-
-
Method Detail
-
getAllDependencies
@NotNull public @NotNull Set<PlanDependency> getAllDependencies()
Retrieves all dependency relationships in the system regardless of the plan involved- Specified by:
getAllDependencies
in interfacePlanDependencyManager
- Returns:
- all plan dependencies.
-
getChildPlanDependencies
@NotNull public @NotNull Set<PlanDependency> getChildPlanDependencies(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrieves all plan dependencies in which the given plan features as a parent- Specified by:
getChildPlanDependencies
in interfacePlanDependencyManager
- Parameters:
plan
- - the parent- Returns:
- set of all children of the given plan
-
getParentChainKeys
@NotNull public @NotNull Set<String> getParentChainKeys(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrieves all chain that are children of the current plan- Specified by:
getParentChainKeys
in interfacePlanDependencyManager
- Parameters:
plan
- - the parent- Returns:
- set of chain keys representing all children of the given plan
-
getChildChainKeys
@NotNull public @NotNull Set<String> getChildChainKeys(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrieves all chain that are children of the current plan- Specified by:
getChildChainKeys
in interfacePlanDependencyManager
- Parameters:
plan
- - the parent- Returns:
- set of chain keys representing all children of the given plan
-
getNotEditableChildKeys
@NotNull public @NotNull Set<String> getNotEditableChildKeys(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrieves a list of keys representing the children that are not editable of the given plan- Specified by:
getNotEditableChildKeys
in interfacePlanDependencyManager
- Parameters:
plan
- parent- Returns:
- Set of un-editable dependencies representing the children of the given plan
-
getNotEditableParentKeys
@NotNull public @NotNull Set<String> getNotEditableParentKeys(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrieves a list of keys representing the children that are not editable of the given plan- Specified by:
getNotEditableParentKeys
in interfacePlanDependencyManager
- Parameters:
plan
- parent- Returns:
- Set of un-editable dependencies representing the children of the given plan
-
getParentPlanDependencies
@NotNull public @NotNull Set<PlanDependency> getParentPlanDependencies(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrieves all plan dependencies in which the given plan features as a child- Specified by:
getParentPlanDependencies
in interfacePlanDependencyManager
- Parameters:
plan
- - the child- Returns:
- newly created set of all parents to the given plan
-
removeAllDependenciesForPlan
public void removeAllDependenciesForPlan(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Deletes any existing dependency featuring the given plan. Used when deleting a plan.- Specified by:
removeAllDependenciesForPlan
in interfacePlanDependencyManager
- Parameters:
plan
- to be removed
-
getChildPlanKeys
@NotNull public @NotNull Set<String> getChildPlanKeys(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrievs all plan that are children of the current plan- Specified by:
getChildPlanKeys
in interfacePlanDependencyManager
- Parameters:
plan
- - the parent- Returns:
- set of plan keys representing all children of the given plan
-
getParentPlanKeys
@NotNull public @NotNull Set<String> getParentPlanKeys(@NotNull @NotNull PlanIdentifier plan)
Description copied from interface:PlanDependencyManager
Retrievs all plans that are a parent of the current plan- Specified by:
getParentPlanKeys
in interfacePlanDependencyManager
- Parameters:
plan
- - the child- Returns:
- set of plan keys representing all parents of the given plan
-
validateChildDependencyList
@NotNull public @NotNull ErrorCollection validateChildDependencyList(@NotNull @NotNull String dependencyType, @NotNull @NotNull Plan plan, @NotNull @NotNull Set<PlanKey> newChildPlanKeys, boolean overwriteExisting)
Description copied from interface:PlanDependencyManager
Validate child dependency list- Specified by:
validateChildDependencyList
in interfacePlanDependencyManager
-
adjustChildDependencyList
public void adjustChildDependencyList(@NotNull @NotNull String dependencyType, @NotNull @NotNull Plan plan, @NotNull @NotNull Set<PlanKey> newChildPlanKeys, boolean overwriteExisting)
Description copied from interface:PlanDependencyManager
Update the existing children dependencies of the given plan and dependency Type to match the provided list of new children.- Specified by:
adjustChildDependencyList
in interfacePlanDependencyManager
- Parameters:
dependencyType
- of the dependencies being adjustedplan
- parentnewChildPlanKeys
- the new list of parents (as plan keys)overwriteExisting
- whether or not to overwrite any existing dependencies (of a different type) with one of the new type
-
adjustParentDependencyList
public void adjustParentDependencyList(@NotNull @NotNull String dependencyKey, @NotNull @NotNull Plan childPlan, @NotNull @NotNull Set<PlanKey> newParentPlanKeys, boolean overwriteExisting)
Description copied from interface:PlanDependencyManager
Update the existing parent dependencies of the given plan and dependency Type to match the provided list of new parents.- Specified by:
adjustParentDependencyList
in interfacePlanDependencyManager
- Parameters:
dependencyKey
- of the dependencies being adjustedchildPlan
- parentnewParentPlanKeys
- the new list of parents (as plan keys)overwriteExisting
- whether or not to overwrite any existing dependencies (of a different type) with one of the new type
-
savePlanDependency
public boolean savePlanDependency(@Nullable @Nullable PlanDependency dependency)
Description copied from interface:PlanDependencyManager
Save the given dependency. Will check if it exists or if the dependency is invalid.- Specified by:
savePlanDependency
in interfacePlanDependencyManager
- Parameters:
dependency
- to save- Returns:
- true if it saved it, false otherwise
-
getEffectiveChildPlans
public Set<ImmutablePlan> getEffectiveChildPlans(@NotNull @NotNull ImmutablePlan chain)
- Specified by:
getEffectiveChildPlans
in interfacePlanDependencyManager
-
getEffectiveParentPlans
public Set<ImmutablePlan> getEffectiveParentPlans(@NotNull @NotNull ImmutablePlan chain)
- Specified by:
getEffectiveParentPlans
in interfacePlanDependencyManager
-
-