protected QueryHandlerScope map()

in src/main/java/com/epam/digital/data/platform/generator/factory/impl/QueryHandlerScopeFactory.java [53:90]


  protected QueryHandlerScope map(Table table, Context context) {
    var nestedEntitiesMap = nestedReadProvider.findFor(table.getName());

    QueryHandlerScope scope = new QueryHandlerScope();
    scope.setClassName(getSchemaName(table) + "QueryHandler");
    scope.setSchemaName(getSchemaName(table) + "Read");
    scope.setPkColumnName(getPkColumn(table).getName());
    scope.setTableName(table.getName());
    scope.setPkType(getPkTypeName(table));
    scope.setTableDataProviderName(getSchemaName(table) + "TableDataProvider");
    scope.setTableAccessCheckFields(
        getPermissionCheckTableColumns(nestedEntitiesMap.values(), table, context));
    var nestedColumns =
        table.getColumns().stream()
            .filter(column -> nestedEntitiesMap.containsKey(column.getName()))
            .collect(toList());
    var simpleColumns =
        table.getColumns().stream()
            .filter(Predicate.not(nestedColumns::contains))
            .collect(toList());
    var singleElementNestedColumns =
        nestedColumns.stream()
            .filter(
                column -> !isManyToManyNestedColumn(nestedEntitiesMap.get(column.getName()), table))
            .collect(toList());
    var listElementNestedColumns =
        nestedColumns.stream()
            .filter(
                column -> isManyToManyNestedColumn(nestedEntitiesMap.get(column.getName()), table))
            .collect(toList());
    scope.setSimpleSelectableFields(getSelectableFields(table.getName(), simpleColumns, context));
    scope.setNestedSingleSelectableGroups(
        groupColumnsWithSelectableFields(singleElementNestedColumns, nestedEntitiesMap, context));
    scope.setNestedListSelectableGroups(
        groupColumnsWithSelectableFields(listElementNestedColumns, nestedEntitiesMap, context));
    scope.setRls(nestedReadProvider.getRlsMetadata(table.getName()));
    return scope;
  }