GFConfigPipelineIR¶
API Reference / Tool Packages / 类索引
- 路径:
addons/gf/tools/config_pipeline/gf_config_pipeline_ir.gd - 模块:
Tool Packages - 继承:
RefCounted - API:
public - 类别:工具 API (
tool_api) - 首次版本:
unreleased
Config Pipeline 的版本化数据库中间表示。 聚合已经通过单表语义校验的 GFConfigPipelineTableIR,并作为 Target 阶段的唯一输入。 IR 不持有导出路径或文件事务策略,确保同一编译结果可以交给多个目标实现。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 常量 | FORMAT |
const FORMAT: String = "gf.config_pipeline.ir" |
| 常量 | FORMAT_VERSION |
const FORMAT_VERSION: int = 1 |
| 方法 | create |
static func create( database_id: StringName = &"", version: String = "", metadata: Dictionary = {} ) -> GFConfigPipelineIR: |
| 方法 | add_table |
func add_table(table_ir: GFConfigPipelineTableIR) -> Dictionary: |
| 方法 | seal |
func seal() -> Dictionary: |
| 方法 | is_sealed |
func is_sealed() -> bool: |
| 方法 | validate_contract |
func validate_contract() -> Dictionary: |
| 方法 | get_database_id |
func get_database_id() -> StringName: |
| 方法 | get_version |
func get_version() -> String: |
| 方法 | get_metadata |
func get_metadata() -> Dictionary: |
| 方法 | get_table |
func get_table(table_name: StringName) -> GFConfigPipelineTableIR: |
| 方法 | get_tables |
func get_tables() -> Array[GFConfigPipelineTableIR]: |
| 方法 | duplicate_ir |
func duplicate_ir() -> GFConfigPipelineIR: |
| 方法 | describe |
func describe() -> Dictionary: |
常量¶
FORMAT¶
- API:
public - 首次版本:
unreleased
数据库 IR 的稳定格式标识。
FORMAT_VERSION¶
- API:
public - 首次版本:
unreleased
数据库 IR 的格式版本。
方法¶
create¶
- API:
public - 首次版本:
unreleased
static func create( database_id: StringName = &"", version: String = "", metadata: Dictionary = {} ) -> GFConfigPipelineIR:
创建空数据库 IR,并取得元数据的副本所有权。
参数:
| 名称 | 说明 |
|---|---|
database_id |
数据库标识;可为空。 |
version |
项目侧配置版本;可为空。 |
metadata |
与目标无关的数据库元数据。 |
返回:新建的数据库 IR。
结构:
metadata: Dictionary,保存构建上下文或项目侧附加元数据。
add_table¶
- API:
public - 首次版本:
unreleased
注册不可变单表 IR。重复表名和损坏契约会 fail closed,且不会污染当前 IR。
参数:
| 名称 | 说明 |
|---|---|
table_ir |
已完成语义校验的单表 IR。 |
返回:注册结果。
结构:
return: Dictionary,包含 success、error_code、error_kind、error 和 table_name。
seal¶
- API:
public - 首次版本:
unreleased
封存数据库 IR。封存成功后不能再注册表,且 IR 才能交给 Target。
返回:封存结果。
结构:
return: Dictionary,包含 success、error_code、error_kind、error 和 table_name。
is_sealed¶
- API:
public - 首次版本:
unreleased
返回 IR 是否已封存。
返回:已封存时为 true。
validate_contract¶
- API:
public - 首次版本:
unreleased
校验数据库 IR 已封存,且自身及全部单表 IR 满足结构契约。
返回:契约校验结果。
结构:
return: Dictionary,包含 success、error_code、error_kind、error 和 table_name。
get_database_id¶
- API:
public - 首次版本:
unreleased
获取数据库标识。
返回:数据库标识。
get_version¶
- API:
public - 首次版本:
unreleased
获取项目侧配置版本。
返回:配置版本。
get_metadata¶
- API:
public - 首次版本:
unreleased
获取数据库元数据。
返回:数据库元数据的深拷贝。
结构:
return: Dictionary,保存构建上下文或项目侧附加元数据。
get_table¶
- API:
public - 首次版本:
unreleased
获取不可变单表 IR。
参数:
| 名称 | 说明 |
|---|---|
table_name |
稳定表名。 |
返回:找到时返回不可变单表 IR,否则返回 null。
get_tables¶
- API:
public - 首次版本:
unreleased
获取按注册顺序排列的不可变单表 IR。
返回:单表 IR 列表;数组容器是副本,元素是不可变 IR。
结构:
return: Array[GFConfigPipelineTableIR],按注册顺序排列。
duplicate_ir¶
- API:
public - 首次版本:
unreleased
创建内容等价且不共享可变载荷的数据库 IR。
返回:数据库 IR 副本;原 IR 已封存时,副本也会封存。
describe¶
- API:
public - 首次版本:
unreleased
导出不包含完整记录载荷的稳定摘要。
返回:IR 摘要。
结构:
return: Dictionary,包含 format、format_version、database_id、version、sealed、metadata、table_count 和 tables。