Interface ChainBranchManager

All Known Implementing Classes:
ChainBranchManagerImpl

public interface ChainBranchManager
  • Method Details

    • getBranchesForChain

      @NotNull @NotNull List<ChainBranch> getBranchesForChain(@NotNull @NotNull ImmutableChain chain)
      Get all feature branches associated with the given chain
      Parameters:
      chain - - the master
      Returns:
      List ChainBranchs associated with the given chain.
    • getBranchesForChain

      @NotNull @NotNull List<PlanKey> getBranchesForChain(@NotNull @NotNull PlanKey chainKey)
      Get all feature branches associated with the chain identified by the given key
      Parameters:
      chainKey - - the chain key
      Returns:
      List ChainBranchs associated with the chain identified by the given key.
      Since:
      9.5
    • getBranchIdentifiersForChain

      @NotNull @NotNull List<ChainBranchIdentifier> getBranchIdentifiersForChain(@NotNull @NotNull PlanIdentifier chain)
      Get all feature branches associated with the given chain, however on pulls up minimal details about each branch.
      Parameters:
      chain - - the master
      Returns:
      List ChainBranchIdentifier for branches associated with the given Chain.
    • hasBranches

      boolean hasBranches(@NotNull @NotNull Plan plan)
      Returns whether or not the given plan has any branches
      Parameters:
      plan - to check for branches for
      Returns:
      true if branches exist of the plan
    • getBranchCount

      int getBranchCount(@NotNull @NotNull ImmutablePlan plan)
      Returns the number of branches the given plan has
      Parameters:
      plan - to check for branches for
      Returns:
      number of branches for the plan
    • getPlansWithBranches

      @NotNull @NotNull Set<Long> getPlansWithBranches()
      Returns a list of plans that currently have branches
      Returns:
      a list of plan ids of the plans with branches.
    • isPlanBranchNameConflicting

      boolean isPlanBranchNameConflicting(ImmutableChain masterPlan, long chainBranchIdToIgnore, String branchName)
      Verifies whether a ChainBranch name is unique with a given master Chain

      Parameters:
      masterPlan - the master chain within which the name has to be unique
      chainBranchIdToIgnore - the id of the ChainBranch that has to be ignored during lookup (when you're saving a ChainBranch, you should supply its id here)
      branchName - displayed name of the ChainBranch inside the master's plan
      Returns:
      true if the name is in conflict
      Since:
      4.0
    • getBranchWithName

      @Nullable @Nullable ChainBranchIdentifier getBranchWithName(ImmutableChain masterPlan, String branchName)
      Returns ChainBranchIdentifier of ChainBranch with given master Chain and name.
      Parameters:
      masterPlan -
      branchName -
      Returns:
      ChainBranchIdentifier or null if no such branch exists
      Since:
      4.2
    • handleVcsBranchDeletedOfPlanBranch

      void handleVcsBranchDeletedOfPlanBranch(ImmutableChain chainBranch)
      Handles deletion of a VCS branch from plan branch's default repository. If the passed in chain is a plan branch it will be disabled and it's default VCS branch will be marked as deleted.
      Parameters:
      chainBranch - the plan branch of which a default VCS branch was deleted
    • handleVcsBranchDeletedOfPlanBranch

      void handleVcsBranchDeletedOfPlanBranch(@NotNull @NotNull ImmutableChain chainBranch, @NotNull @NotNull PlanRepositoryDefinition planRepositoryDefinition)
      Handles deletion of a VCS branch from any of the plan branch's repositories. If the passed in chain is a plan branch it will be disabled. If the deleted branch is the default branch it will mark that VCS branch as deleted.
      Parameters:
      chainBranch - the plan branch of which a VCS branch was deleted
      planRepositoryDefinition - plan repository whose branch was deleted
    • getBranchesForJob

      Collection<Job> getBranchesForJob(Job job)
    • getNextBranchKeyNumber

      long getNextBranchKeyNumber(ImmutablePlan chain)
      Retrieving suggested number for next branch key in given chain. If it's first branch it will return 0.
      Parameters:
      chain -
      Returns:
    • updateNextBranchKeyNumber

      void updateNextBranchKeyNumber(ImmutablePlan chain, long number)
      Set suggested number for next branch key in given chain
      Parameters:
      chain -
      number -
    • updatePlanBranchMetadata

      void updatePlanBranchMetadata(@NotNull @NotNull PlanKey branchKey)
      Update plan branch metadata to reflect the current state of chain.
      Since:
      8.2
    • markMetadataInvalid

      void markMetadataInvalid(@NotNull @NotNull PlanKey branchKey)
      Marks the chain as 'invalid', which means metadata no longer match vcs data.
      Since:
      8.2
    • clearInvalidMetadataFlagInBranches

      @Internal void clearInvalidMetadataFlagInBranches(long masterId)
      Clears 'invalid' flag in all branches of a chain.
      Since:
      8.2