pgconfig: Refactor layer and group repos with PublishedInfo superclass #622
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit introduces
PgconfigPublishedInfoRepository
as a common superclass forPgconfigLayerRepository
andPgconfigLayerGroupRepository
, improving code reuse and enabling optimized querying ofPublishedInfo
objects in thepgconfig
backend. It enhancesPgconfigCatalogFacade
with a dedicated, read-onlyPgconfigPublishedInfoReadOnlyRepository
for efficientPublishedInfo
queries.Key changes:
PgconfigPublishedInfoRepository
as an abstract base for layer and layer group repositories, centralizing common logic.PgconfigPublishedInfoReadOnlyRepository
for read-onlyPublishedInfo
access, integrated intoPgconfigCatalogFacade
for direct query and count operations, bypassing separate layer/group queries.CatalogInfoRowMapper
to be generic and actually implement RowMapper, removing static factory methods using lambdas per cataloginfo type in favor of a configurablenewInstance()
approach.PgconfigCatalogInfoRepository
with type safety and SQL generation utilities (e.g.,select()
).Namespace
,Store
,Resource
,Style
,Workspace
) to use the new generic row mapper and type-safe constructor.Impact:
PublishedInfo
repository, avoiding merge-sort overhead in the default facade implementation.No database schema changes are included in this commit; it focuses on code structure and runtime efficiency.