public Version findVersionByPath()

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


  public Version findVersionByPath(final String version) {
    List<String> branches = new ArrayList<String>();
    int intVersion;

    final List<String> versions = StringUtil.split(version, File.separator);
    for (int i = 0; i < versions.size() - 1; i++) {
      String s = versions.get(i);
      if (s.length() > 0) {
        branches.add(s);
      }
    }

    String lastVers = versions.get(versions.size() - 1);

    if (lastVers.contains("(")) {
      lastVers = lastVers.substring(0, lastVers.indexOf('(')).trim();
    }

    try {
      intVersion = Integer.parseInt(lastVers);
    } catch (NumberFormatException e) {
      return null;
    }

    Branch currentBranch = null;
    for (String branch : branches) {
      if (currentBranch == null) {
        currentBranch = findRootByName(branch);
      } else {
        currentBranch = currentBranch.findSubBranchByName(branch);
      }

      if (currentBranch == null) return null;
    }

    return currentBranch.findVersionByNum(intVersion);
  }