private String getNestingEntryPointTable()

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


  private String getNestingEntryPointTable(List<Metadata> metadata) {
    var allTablesWithNesting = metadata.stream()
            .map(Metadata::getName)
            .collect(toSet());
    var referencedTables = metadata.stream()
            .map(m -> getNestingReferencedColumn(m.getName(), m.getValue()))
            .map(Column::getParent)
            .map(Table::getName)
            .collect(toSet());
    var nonReferencedTables = Sets.difference(allTablesWithNesting, referencedTables);
    if (nonReferencedTables.size() != 1) {
      throw new IllegalStateException(
          "Couldn't find entry point for nesting structure, possible options: "
              + nonReferencedTables);
    }
    return nonReferencedTables.iterator().next();
  }