private List getProcessesByVersion()

in ddm-rrm-business-process-management/src/main/java/com/epam/digital/data/platform/management/service/impl/BusinessProcessServiceImpl.java [167:210]


  private List<BusinessProcessInfoDto> getProcessesByVersion(String versionName,
      FileStatus skippedStatus) {
    List<VersionedFileInfoDto> fileList;
    var repo =
        versionContextComponentManager.getComponent(versionName, VersionedFileRepository.class);
    fileList = repo.getFileList(DIRECTORY_PATH);
    var masterRepo =
        versionContextComponentManager.getComponent(
            gerritPropertiesConfig.getHeadBranch(), VersionedFileRepository.class);
    List<BusinessProcessInfoDto> processes = new ArrayList<>();
    List<String> conflicts = cacheService.getConflictsCache(versionName);
    for (VersionedFileInfoDto versionedFileInfoDto : fileList) {
      if (versionedFileInfoDto.getStatus().equals(skippedStatus)) {
        continue;
      }
      String processContent;
      if (versionedFileInfoDto.getStatus() == FileStatus.DELETED) {
        processContent = masterRepo.readFile(getProcessPath(versionedFileInfoDto.getName()));
      } else {
        processContent = repo.readFile(getProcessPath(versionedFileInfoDto.getName()));
      }
      var dates = getDatesFromContent(processContent);
      if (Objects.isNull(dates.getCreate()) || Objects.isNull(dates.getUpdate())) {
        var path = getProcessPath(versionedFileInfoDto.getName());
        var datesFromRepo = versionedFileInfoDto.getStatus() == FileStatus.DELETED
            ? masterRepo.getVersionedFileDates(path) : repo.getVersionedFileDates(path);
        if (Objects.nonNull(datesFromRepo)) {
          if (Objects.isNull(dates.getCreate())) {
            dates.setCreate(datesFromRepo.getCreated());
          }
          if (Objects.isNull(dates.getUpdate())) {
            dates.setUpdate(datesFromRepo.getUpdated());
          }
        }
      }
      processes.add(
          mapper.toBusinessProcess(
              versionedFileInfoDto,
              dates,
              getAttributeFromContent(processContent, "name"),
              conflicts.contains(versionedFileInfoDto.getPath())));
    }
    return processes;
  }