class SqlPersistenceComponentImpl implements SqlPersistenceComponent {

    private final ProjectComponent projectComponent;
    private final DbmsHandlerComponent dbmsHandlerComponent;
    private final ManagerComponent managerComponent;
    private final ResultSetMapperComponent resultSetMapperComponent;

    public SqlPersistenceComponentImpl(
        final ProjectComponent projectComponent,
        final DbmsHandlerComponent dbmsHandlerComponent,
        final ManagerComponent managerComponent,
        final ResultSetMapperComponent resultSetMapperComponent
    ) {
        this.projectComponent = requireNonNull(projectComponent);
        this.dbmsHandlerComponent = requireNonNull(dbmsHandlerComponent);
        this.managerComponent = requireNonNull(managerComponent);
        this.resultSetMapperComponent = requireNonNull(resultSetMapperComponent);
    }

    @Override
    public <ENTITY> PersistenceProvider<ENTITY> persistenceProvider(PersistenceTableInfo<ENTITY> tableInfo) {<FILL_FUNCTION_BODY>}
}

        return new SqlPersistenceProviderImpl<>(
            tableInfo,
            projectComponent,
            dbmsHandlerComponent,
            managerComponent,
            resultSetMapperComponent
        );
    
<no_super_class>