Class SpecFormulaBridge

java.lang.Object
ai.specformula.spring.SpecFormulaBridge

public class SpecFormulaBridge extends Object
Cucumber SPI 與 Spring DI 之間的橋接器。

Instance-based 設計:由 SpecFormulaBackendProviderService 建立實例並注入 SpecFormulaBackend。保留 static getInstance() 供 SpecFormulaSpringConfiguration 在 Spring Context 啟動後注入 DataSource、HttpClientAdapter 等。

  • Constructor Details

    • SpecFormulaBridge

      public SpecFormulaBridge()
  • Method Details

    • getInstance

      public static SpecFormulaBridge getInstance()
    • setInstance

      public static void setInstance(SpecFormulaBridge bridge)
    • initialize

      public void initialize(ISAFeatureArgumentResolver resolver, Map<String,DatabaseSchema> schemaMap, ApiSpec apiSpec, String timeFormat)
      初始化 bridge 共用元件。在 spec 讀取完成後呼叫。
    • currentContext

      public ScenarioContext currentContext()
    • newScenario

      public void newScenario()
      Scenario 開始:建立 ScenarioContext,lazy init instructions, 觸發所有 LifecycleHook 的 beforeScenario()。
    • endScenario

      public void endScenario()
      Scenario 結束:清除 ScenarioContext,truncate 所有資料表。
    • getTimeControl

      public TimeControl getTimeControl()
    • getEntitySetup

      public EntitySetup getEntitySetup()
    • getEntityValidate

      public EntityValidate getEntityValidate()
    • getEntityNonExistenceValidate

      public EntityNonExistenceValidate getEntityNonExistenceValidate()
    • getApiCall

      public ApiCall getApiCall()
    • getJsonApiCall

      public JsonApiCall getJsonApiCall()
    • getDataTableResponseValidate

      public DataTableResponseValidate getDataTableResponseValidate()
    • setPluginLoader

      public void setPluginLoader(PluginLoader pluginLoader, DefaultPluginContext pluginContext)
    • getPluginLoader

      public PluginLoader getPluginLoader()
    • getPluginContext

      public DefaultPluginContext getPluginContext()
    • getJsonResponseValidate

      public JsonResponseValidate getJsonResponseValidate()
    • getResolver

      public ISAFeatureArgumentResolver getResolver()
    • getSchemaMap

      public Map<String,DatabaseSchema> getSchemaMap()
    • getApiSpec

      public ApiSpec getApiSpec()
    • getTimeFormat

      public String getTimeFormat()
    • setConnectionSupplier

      public void setConnectionSupplier(String name, Supplier<Connection> supplier)
    • setDataSource

      public void setDataSource(String name, DataSource dataSource)
      註冊 DataSource。

      若 dataSource 為 TrackingDataSource,自動啟用 dirty table tracking, 清理時只清理有被 INSERT 的 table;否則清理時會清理全部資料表。

    • getConnectionSupplier

      public Supplier<Connection> getConnectionSupplier(String name)
    • getConnectionSupplierMap

      public Map<String,Supplier<Connection>> getConnectionSupplierMap()
    • getDataSourceNames

      public Set<String> getDataSourceNames()
    • setConnectionSupplier

      public void setConnectionSupplier(Supplier<Connection> supplier)
    • setDataSource

      public void setDataSource(DataSource dataSource)
    • getConnectionSupplier

      public Supplier<Connection> getConnectionSupplier()
    • getConnection

      public Connection getConnection(String dataSourceName)
      根據 DataSource 名稱取得 Connection,含 fallback 邏輯。
    • setHttpClient

      public void setHttpClient(HttpClientAdapter client)
    • getHttpClient

      public HttpClientAdapter getHttpClient()
    • setAuthenticator

      public void setAuthenticator(Authenticator auth)
    • getAuthenticator

      public Authenticator getAuthenticator()
    • setMockTime

      public void setMockTime(MockTime mt)
    • getMockTime

      public MockTime getMockTime()
    • truncateAllTables

      public void truncateAllTables()
      由 BuiltinRdbLifecyclePlugin(ADR-0027)呼叫;先前由 endScenario() 直接呼叫。 改為 public 以讓 plugin 從外部驅動。
    • reset

      public void reset()