public void process()

in src/main/java/com/epam/digital/data/platform/report/pipeline/impl/UtilQueryPipeline.java [62:85]


  public void process(List<File> files, Context context) {
    log.info("Processing parameter queries for dataSource with id {}",
        context.getDataSourceId());
    var utilQueries = getUtilQueries(files);
    var buffer = new ArrayList<>(utilQueries);

    queryService.archive(utilQueries);

    while (!buffer.isEmpty()) {
      var queriesForPublishing = getQueriesThatCanBePublished(buffer, context);
      if (queriesForPublishing.isEmpty()) {
        var notPublished = buffer.stream().map(Query::getId).collect(Collectors.toSet());
        throw new QueryPublishingException("Queries '" + notPublished + "' cannot be published "
            + "because they have a circular dependency or depend on other queries that "
            + "are not in the file with queries");
      }
      var saved = queryService.save(visualizationsByQuery(queriesForPublishing), context);
      queryService.publish(saved);
      queryService.execute(saved);

      context.addMappedIds(mapToNewIds(saved, utilQueries));
      buffer.removeAll(queriesForPublishing);
    }
  }