private boolean doIsVersionIsInsideView()

in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/configSpec/ConfigSpecImpl.java [89:117]


  private boolean doIsVersionIsInsideView(final ClearCaseConnection connection, final String fullFileName, final Version version, final boolean isFile) throws VcsException {
    final String normalizedFullFileName = CCPathElement.normalizeFileName(fullFileName);
    if (!isUnderLoadRules(connection.getClearCaseViewPath(), normalizedFullFileName)) return false;

    final Version version_copy = new Version(version);

    boolean versionTreeHasBeenChanged;
    do {
      versionTreeHasBeenChanged = false;
      for (ConfigSpecStandardRule rule : myStandardRules) {
        if (!rule.matchesPath(normalizedFullFileName, isFile)) continue;
        final ConfigSpecStandardRule.ResultType result = rule.isVersionIsInsideView(version_copy);
        if (ConfigSpecStandardRule.ResultType.DOES_NOT_MATCH.equals(result)) {
          if (rightVersionExists(rule, getRootBranch(version_copy))) {
            return false;
          }
        }
        else if (ConfigSpecStandardRule.ResultType.BRANCH_HAS_BEEN_MADE.equals(result)) {
          versionTreeHasBeenChanged = true;
          break;
        }
        else if (ConfigSpecStandardRule.ResultType.MATCHES.equals(result)) {
          return true;
        }
      }
    } while (versionTreeHasBeenChanged);

    return false;
  }