public Map findUsedResources()

in server/src/jetbrains/buildServer/sharedResources/server/analysis/ResourceUsageAnalyzer.java [76:109]


  public Map<String, Resource> findUsedResources(@NotNull final SProject project) {
    final Map<String, Resource> result = new HashMap<>();
    final String projectId = project.getProjectId();
    final Map<String, Resource> availableToMeResources = myResources.getResourcesMap(projectId);
    if (!availableToMeResources.isEmpty()) {
      final List<BuildTypeSettings> lookupScope = getLookupScope(project);
      for (final BuildTypeSettings btSettings: lookupScope) {
        final Collection<SharedResourcesFeature> features = myFeatures.searchForFeatures(btSettings);
        if (!features.isEmpty()) {
          Map<String, Resource> currentBtResources;
          final String btProjectId = btSettings.getProject().getProjectId();
          if (btProjectId.equals(projectId)) {
            currentBtResources = availableToMeResources;
          } else {
            currentBtResources = CollectionsUtil.filterMapByValues(
              myResources.getResourcesMap(btProjectId), availableToMeResources::containsValue);
          }
          if (!currentBtResources.isEmpty()) {
            for (SharedResourcesFeature feature : features) {
              final Map<String, Lock> lockedResources = feature.getLockedResources();
              if (!lockedResources.isEmpty()) {
                for (String resourceName : lockedResources.keySet()) {
                  if (currentBtResources.containsKey(resourceName)) {
                    result.put(resourceName, currentBtResources.get(resourceName));
                  }
                }
              }
            }
          }
        }
      }
    }
    return result;
  }