001package gudusoft.gsqlparser.catalog.runtime; 002 003import gudusoft.gsqlparser.catalog.input.model.UnifiedCatalogModel; 004 005/** 006 * Static utility helpers for working with {@link CatalogProvider}s. Counterpart to 007 * {@code gudusoft.gsqlparser.catalog.input.CatalogInputReaders} on the input side. 008 */ 009public final class CatalogProviders { 010 011 private CatalogProviders() { 012 // Static utility — no instances. 013 } 014 015 /** 016 * Create an in-memory provider seeded with the given snapshot, opened and ready 017 * to serve {@code snapshot(...)} calls. 018 */ 019 public static CatalogProvider inMemory(CatalogSnapshot snapshot) { 020 InMemoryCatalogProvider p = new InMemoryCatalogProvider(snapshot); 021 p.open(CatalogProviderConfig.empty()); 022 return p; 023 } 024 025 /** 026 * Create a model-backed provider, opened and ready to serve {@code snapshot(...)} 027 * calls. The provider materializes the model into a snapshot up front. 028 */ 029 public static CatalogProvider modelBacked(UnifiedCatalogModel model) { 030 ModelBackedCatalogProvider p = new ModelBackedCatalogProvider(model); 031 p.open(CatalogProviderConfig.empty()); 032 return p; 033 } 034}