protected void fillModel()

in server/src/jetbrains/buildServer/sharedResources/pages/usage/BuildUsedResourcesReportPage.java [47:81]


  protected void fillModel(@NotNull final Map<String, Object> model, @NotNull final HttpServletRequest request, @NotNull final SBuild build) {
    final List<UsedResource> usedResources = myReport.load(build);
    usedResources.sort((r1, r2) -> r1.getResource().getName().compareToIgnoreCase(r2.getResource().getName()));
    final Map<String, SProject> projects = new HashMap<>();
    final Set<String> failed = new HashSet<>();
    final ProjectManager pm = myServer.getProjectManager();
    final Map<String, SProject> resourceOrigins = new HashMap<>();
    final List<Pair<String, String>> parameters = new ArrayList<>();

    usedResources.forEach(ur -> {
      String id = ur.getResource().getProjectId();
      if (projects.containsKey(id)) {
        resourceOrigins.put(ur.getResource().getName(), projects.get(id));
      } else {
        if (!failed.contains(id)) {
          try {
            SProject project = pm.findProjectById(id);
            if (project != null) {
              projects.put(id, project);
              resourceOrigins.put(ur.getResource().getName(), project);
            }
          } catch (AccessDeniedException e) {
            failed.add(id);
          }
        }
      }
      parameters.addAll(myLocks.asBuildParameters(ur.getLocks()).entrySet().stream()
                               .map(e -> new Pair<>(e.getKey(), e.getValue()))
                               .collect(Collectors.toList()));
    });
    parameters.sort((p1, p2) -> p1.getFirst().compareToIgnoreCase(p2.getFirst()));
    model.put("resourceOrigins", resourceOrigins);
    model.put("usedResources", usedResources);
    model.put("parameters", parameters);
  }