@Override
public ConfigPhysicalTable build(ResourceDictionaries dictionaries, DataSourceMetadataService metadataService) {
Map<ConfigPhysicalTable, DataSourceFilter> availabilityFilters = tablePartDefinitions.entrySet().stream()
.collect(Collectors.toMap(
entry -> dictionaries.getPhysicalDictionary().get(entry.getKey().asName()),
entry -> new DimensionIdFilter(toDimensionValuesMap(
entry.getValue(),
dictionaries.getDimensionDictionary()
))
));
return new BaseCompositePhysicalTable(
getName(),
getTimeGrain(),
buildColumns(dictionaries.getDimensionDictionary()),
availabilityFilters.keySet(),
getLogicalToPhysicalNames(),
PartitionAvailability.build(availabilityFilters)
);
}