public static List splitIntoPathElements()

in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/CCPathElement.java [111:138]


  public static List<CCPathElement> splitIntoPathElements(final String objectName) {
    final List<CCPathElement> result = new ArrayList<CCPathElement>();

    boolean hadVersionSeparator = false;
    boolean treatMainAsVersionId = !TeamCityProperties.getBoolean(Constants.TEAMCITY_PROPERTY_DO_NOT_TREAT_MAIN_AS_VERSION_IDENTIFIER);

    final List<String> subNames = StringUtil.split(normalizeSeparators(objectName), false, File.separatorChar);
    for (int i = 0, size = subNames.size(); i < size; i++) {
      final String subName = subNames.get(i);

      if (subName.endsWith(CCParseUtil.CC_VERSION_SEPARATOR)) {
        final CCPathElement currentPair = new CCPathElement(subName.substring(0, subName.length() - CCParseUtil.CC_VERSION_SEPARATOR.length()), true);
        result.add(currentPair);
        i = processVersion(currentPair, i, subNames);
        hadVersionSeparator = true;
      }
      else if (hadVersionSeparator && treatMainAsVersionId && i + 1 < size && MAIN.equalsIgnoreCase(subNames.get(i + 1))) {
        final CCPathElement currentPair = new CCPathElement(subName, true);
        result.add(currentPair);
        i = processVersion(currentPair, i, subNames);
      }
      else {
        result.add(new CCPathElement(subName, false));
      }
    }

    return removeDots(result);
  }