private Map getNested()

in src/main/java/com/epam/digital/data/platform/generator/metadata/NestedStructureProvider.java [87:107]


  private Map<String, NestedNode> getNested(
      List<Metadata> metadata, NestedNode curr) {
    var childrenMetadata =
        metadata.stream().filter(m -> m.getName().equals(curr.getTableName())).collect(toList());
    if (childrenMetadata.isEmpty()) {
      return Collections.emptyMap();
    }
    return childrenMetadata.stream()
        .map(
            metadataEntry -> {
              var parentColumnName = metadataEntry.getValue();
              var nestedElement = new NestedNode();
              var childColumn =
                  getNestingReferencedColumn(
                      metadataEntry.getName(), metadataEntry.getValue());
              nestedElement.setTableName(childColumn.getParent().getName());
              nestedElement.setChildNodes(getNested(metadata, nestedElement));
              return Map.entry(parentColumnName, nestedElement);
            })
        .collect(toMap(Map.Entry::getKey, Map.Entry::getValue));
  }