public GroupedProcessDefinitionResponse getGroupedProcessDefinitions()

in src/main/java/com/epam/digital/data/platform/usrprcssmgt/service/ProcessDefinitionService.java [179:200]


  public GroupedProcessDefinitionResponse getGroupedProcessDefinitions(GetProcessDefinitionsParams params) {
    log.info("Getting grouped process definitions. Params: {}", params);
    var processDefinitions =
        processDefinitionRemoteService.getProcessDefinitions(params).stream()
            .collect(Collectors.toMap(ProcessDefinitionResponse::getKey, Function.identity()));

    // getting the processes defined in the file and removing them from the map
    var groupsResponse = getGroupedProcessDefinition(processDefinitions);
    var ungroupedResponse = getUngroupedProcessDefinition(processDefinitions);

    if (!processDefinitions.isEmpty()) {
      var processesNotInTheGroupingFile = processDefinitions.values().stream()
          .sorted(Comparator.comparing(ProcessDefinitionResponse::getName))
          .collect(Collectors.toList());
      ungroupedResponse.addAll(processesNotInTheGroupingFile);
    }
    log.info("Process definitions are found. Group count - {}, ungrouped processes - {}", groupsResponse.size(), ungroupedResponse.size());
    return GroupedProcessDefinitionResponse.builder()
        .groups(groupsResponse)
        .ungrouped(ungroupedResponse)
        .build();
  }