private Branch addBranchToLevel()

in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/versionTree/VersionTree.java [93:126]


  private Branch addBranchToLevel(final Branch currentBranch, final String branchName) throws VcsException {
    if (currentBranch == null) {
      for (Branch branch : myTopBranches) {
        if (branch.getName().equals(branchName)) {
          return branch;
        }
      }
      final Branch result = new Branch(null, branchName);
      myTopBranches.add(result);
      return result;
    } else {
      Version version = currentBranch.getFirstVersion();
      Version last = null;
      while (version != null) {
        last = version;
        final List<Branch> inhBranches = version.getInheritedBranches();
        for (Branch branch : inhBranches) {
          if (branch.getName().equals(branchName)) {
            return branch;
          }
        }
        version = version.getNextVersion();
      }

      if (last != null) {
        final Branch result = new Branch(last, branchName);
        last.addInheritedBranch(result);
        return result;
      } else {
        throw new VcsException("Cannot add branch " + branchName + " to level " + currentBranch);
      }
    }

  }