@NotNull
    private Map<String, Collection<String>> collectGeneratedPaths(ProjectTaskContext context) {
      Collection<String> generatedFilesRoots = context.getGeneratedFilesRoots();
      if (generatedFilesRoots.isEmpty()) return Collections.emptyMap();

      Map<String, Collection<String>> generatedPaths = new HashMap<>();
      for (String outputRoot : generatedFilesRoots) {
        // collect only classes under IDE output roots
        if (!JpsPathUtil.isUnder(myOutputRoots, new File(outputRoot))) continue;
        Collection<String> relativePaths = ContainerUtil.filter(
          context.getGeneratedFilesRelativePaths(outputRoot),
          relativePath -> StringUtil.endsWith(relativePath, ".class")
        );
        if (!relativePaths.isEmpty()) {
          generatedPaths.put(outputRoot, relativePaths);
        }
      }
      return generatedPaths;
    }
@NotNull
    private Map<String, Collection<String>> collectGeneratedPaths(ProjectTaskContext context)