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