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);
}
}