GFValidationRule¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/foundation/validation/gf_validation_rule.gd - 模块:
Standard - 继承:
Resource - API:
public - 类别:协议与扩展点 (
protocol) - 首次版本:
3.17.0
通用校验规则资源。 通过 Callable 或子类钩子校验任意对象、资源、节点或数据。规则只负责把问题写入 GFValidationReport,不约定项目脚本方法名,也不内置业务字段语义。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 枚举 | TargetKind |
enum TargetKind |
| 属性 | rule_id |
var rule_id: StringName = &"" |
| 属性 | description |
var description: String = "" |
| 属性 | target_kind |
var target_kind: TargetKind = TargetKind.ANY |
| 属性 | enabled |
var enabled: bool = true |
| 属性 | severity |
var severity: GFValidationIssue.Severity = GFValidationIssue.Severity.ERROR |
| 属性 | metadata |
var metadata: Dictionary = {} |
| 属性 | callback |
var callback: Callable = Callable() |
| 方法 | configure |
func configure( p_rule_id: StringName, p_callback: Callable = Callable(), options: Dictionary = {} ) -> GFValidationRule: |
| 方法 | applies_to |
func applies_to(target: Variant, context: Dictionary = {}) -> bool: |
| 方法 | validate |
func validate(target: Variant, context: Dictionary = {}) -> GFValidationReport: |
| 方法 | duplicate_rule |
func duplicate_rule() -> GFValidationRule: |
| 方法 | _validate |
func _validate(_target: Variant, _report: GFValidationReport, _context: Dictionary) -> Variant: |
枚举¶
TargetKind¶
- API:
public
enum TargetKind { ## 接受任意目标。 ANY, ## 接受 Node。 NODE, ## 接受 Resource。 RESOURCE, ## 接受 PackedScene。 PACKED_SCENE, ## 接受 Dictionary。 DICTIONARY, ## 接受 Array。 ARRAY, ## 接受 Object。 OBJECT, }
规则适用的目标类型。
属性¶
rule_id¶
- API:
public
规则唯一标识。推荐使用稳定的 snake_case 或点分层级标识。
description¶
- API:
public
面向工具或报告的规则说明。
target_kind¶
- API:
public
规则适用的目标类型。
enabled¶
- API:
public
是否启用该规则。
severity¶
- API:
public
当 Callable 或钩子返回 false / 非空字符串时使用的默认严重级别。
metadata¶
- API:
public
可选元数据。框架不解释该字段。
结构:
metadata: Dictionary of caller-defined rule metadata.
callback¶
- API:
public
可选校验回调,签名为 func(target: Variant, report: GFValidationReport, context: Dictionary) -> Variant。
方法¶
configure¶
- API:
public
func configure( p_rule_id: StringName, p_callback: Callable = Callable(), options: Dictionary = {} ) -> GFValidationRule:
配置规则并返回自身。
参数:
| 名称 | 说明 |
|---|---|
p_rule_id |
规则标识。 |
p_callback |
可选校验回调。 |
options |
可选字段,支持 description、target_kind、enabled、severity、metadata。 |
返回:当前规则。
结构:
options: Dictionary rule configuration overrides.
applies_to¶
- API:
public
检查规则是否适用于目标。
参数:
| 名称 | 说明 |
|---|---|
target |
待校验目标。 |
context |
调用方上下文。 |
返回:适用时返回 true。
结构:
target: Variant validation target.context: Dictionary validation context.
validate¶
- API:
public
执行规则并返回报告。
参数:
| 名称 | 说明 |
|---|---|
target |
待校验目标。 |
context |
调用方上下文。 |
返回:校验报告。
结构:
target: Variant validation target.context: Dictionary validation context.
duplicate_rule¶
- API:
public
创建当前规则的浅配置副本。
返回:新规则。
_validate¶
- API:
protected
执行子类自定义校验逻辑。
参数:
| 名称 | 说明 |
|---|---|
_target |
待校验目标。 |
_report |
当前规则报告,可直接写入问题。 |
_context |
调用方上下文。 |
返回:自定义校验结果;支持 null、GFValidationReport、Dictionary、Array、bool、String 或 StringName。
结构:
_target: Variant validation target._context: Dictionary validation context.return: Variant validation hook result accepted by _apply_result.