跳转至

校验规则

需要更细的导入校验时,可以给字段、记录或整表挂载 GFConfigValidationRule。规则只负责把问题写入通用校验报告,不解释项目业务含义。

内置规则

  • GFConfigRangeValidationRule:数值范围。
  • GFConfigRegexValidationRule:字符串格式。
  • GFConfigSetValidationRule:白名单集合。
  • GFConfigSizeValidationRule:字段、记录或表大小。
  • GFConfigNotDefaultValidationRule:非默认值。
  • GFConfigResourcePathValidationRule:Godot 资源路径与扩展名。
  • GFConfigLocalizationKeyValidationRule:文本 key 是否存在。

使用示例

var icon_column := GFConfigTableColumn.new()
icon_column.field_name = &"icon_path"
icon_column.value_type = GFConfigTableColumn.ValueType.STRING

var path_rule := GFConfigResourcePathValidationRule.new()
path_rule.allowed_extensions = PackedStringArray(["png", "webp"])
icon_column.validation_rules.append(path_rule)

var power_column := GFConfigTableColumn.new()
power_column.field_name = &"power"
power_column.value_type = GFConfigTableColumn.ValueType.FLOAT

var power_rule := GFConfigRangeValidationRule.new()
power_rule.has_minimum = true
power_rule.minimum = 0.0
power_column.validation_rules.append(power_rule)

var table_size := GFConfigSizeValidationRule.new()
table_size.has_maximum_size = true
table_size.maximum_size = 500
schema.table_validation_rules.append(table_size)

使用边界

字段规则在类型校验通过后执行;记录规则放在 GFConfigTableSchema.record_validation_rules,表规则放在 table_validation_rules

校验上下文会写入 table_namerow_keyfieldrule_id,并在导入器提供来源信息时附带 sourcelinecolumn。自定义规则继承 GFConfigValidationRule,重写 _validate_value()_validate_record()_validate_table(),再通过 _add_issue() 写入稳定 kind