private Collection getApplicableConfigurations()

in command.line/java/com/jetbrains/teamcity/command/RemoteRun.java [300:335]


  private Collection<String> getApplicableConfigurations(Collection<String> requestedIDs,
                                                         final Collection<ITCResource> files,
                                                         final IProgressMonitor monitor,
                                                         final boolean forceCompatibilityCheck) throws ECommunicationException {

    monitor.beginTask("Collecting configurations for running");

    try {
      if (!requestedIDs.isEmpty()) {
        debug("Requested configurations for running: %s", requestedIDs);
        List<String> intersection = new ArrayList<String>(requestedIDs);

        if (forceCompatibilityCheck) {
          // make intersection of passed and applicable

          final Collection<String> applicable = collectApplicableConfigurations(monitor, files);
          debug("Comparing with applicable configurations: %s", applicable);

          intersection.retainAll(applicable);
          debug("Use configurations for running: %s", intersection);
        }

        return intersection;
      }
      else {
        // if specific configurations are not specified, run on all applicable configurations
        final Collection<String> applicable = collectApplicableConfigurations(monitor, files);
        debug("Using all applicable configurations for running: %s", applicable);
        return applicable;
      }

    }
    finally {
      monitor.done();
    }
  }