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