GFValidationReportDictionary¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/foundation/validation/gf_validation_report_dictionary.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
3.17.0
通用校验报告字典辅助。 提供字典报告的追加、归一化、统计和严重级别提升工具,便于字典式报告 接入 GFValidationIssue / GFValidationReport 使用的标准字段。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 方法 | issue_to_dict |
static func issue_to_dict(issue: Variant, include_empty_fields: bool = false) -> Dictionary: |
| 方法 | report_from_dict |
static func report_from_dict(data: Dictionary) -> RefCounted: |
| 方法 | append_issue |
static func append_issue( report: Dictionary, severity: Variant, kind: StringName, message: String, fields: Dictionary = {} ) -> Dictionary: |
| 方法 | append_source_issue |
static func append_source_issue( report: Dictionary, severity: Variant, kind: StringName, message: String, source_span: Variant, fields: Dictionary = {} ) -> Dictionary: |
| 方法 | finalize_report |
static func finalize_report( report: Dictionary, subject: String = "", options: Dictionary = {} ) -> Dictionary: |
| 方法 | make_summary |
static func make_summary(subject: String, error_count: int, warning_count: int) -> String: |
| 方法 | get_next_action |
static func get_next_action( report: Dictionary, action_map: Dictionary = {}, fallback_action: String = "Review the first reported issue.", no_action: String = "No action required.", options: Dictionary = {} ) -> String: |
| 方法 | has_error_issues |
static func has_error_issues(report: Dictionary, options: Dictionary = {}) -> bool: |
| 方法 | make_issue_fingerprint |
static func make_issue_fingerprint(issue: Variant, fields: PackedStringArray = PackedStringArray()) -> String: |
| 方法 | filter_issues |
static func filter_issues(report: Dictionary, options: Dictionary = {}) -> Dictionary: |
| 方法 | promote_warnings |
static func promote_warnings(report: Dictionary, kinds: PackedStringArray = PackedStringArray()) -> Dictionary: |
方法¶
issue_to_dict¶
- API:
public
将任意问题转换为字典。
参数:
| 名称 | 说明 |
|---|---|
issue |
GFValidationIssue 或问题字典。 |
include_empty_fields |
为 true 时包含空的可选字段。 |
返回:问题字典。
结构:
issue: Variant accepting GFValidationIssue or Dictionary issue payload.return: Dictionary serialized issue payload.
report_from_dict¶
- API:
public
将报告字典转换为 GFValidationReport。
参数:
| 名称 | 说明 |
|---|---|
data |
输入字典。 |
返回:新报告。
结构:
data: Dictionary report payload.
append_issue¶
- API:
public
static func append_issue( report: Dictionary, severity: Variant, kind: StringName, message: String, fields: Dictionary = {} ) -> Dictionary:
向字典报告追加问题。
参数:
| 名称 | 说明 |
|---|---|
report |
目标报告字典。 |
severity |
严重级别,可传入 Severity、int 或字符串。 |
kind |
问题类别。 |
message |
问题说明。 |
fields |
附加字段,例如 key、path、row_key、metadata。 |
返回:追加的问题字典。
结构:
report: Dictionary report payload mutated in place.severity: Variant accepting GFValidationIssue.Severity, int, String, or StringName.fields: Dictionary additional issue fields.return: Dictionary appended issue payload.
append_source_issue¶
- API:
public
static func append_source_issue( report: Dictionary, severity: Variant, kind: StringName, message: String, source_span: Variant, fields: Dictionary = {} ) -> Dictionary:
向字典报告追加带源码定位的问题。
参数:
| 名称 | 说明 |
|---|---|
report |
目标报告字典。 |
severity |
严重级别,可传入 Severity、int 或字符串。 |
kind |
问题类别。 |
message |
问题说明。 |
source_span |
GFSourceSpan 或兼容字典。 |
fields |
附加字段,例如 key、path、row_key、metadata。 |
返回:追加的问题字典。
结构:
report: Dictionary report payload mutated in place.severity: Variant accepting GFValidationIssue.Severity, int, String, or StringName.source_span: Variant accepting GFSourceSpan or Dictionary span payload.fields: Dictionary additional issue fields.return: Dictionary appended issue payload.
finalize_report¶
- API:
public
static func finalize_report( report: Dictionary, subject: String = "", options: Dictionary = {} ) -> Dictionary:
重新计算字典报告的统计字段。
参数:
| 名称 | 说明 |
|---|---|
report |
目标报告字典。 |
subject |
摘要主题;为空时使用 report.subject 或 Validation report。 |
options |
可选控制,支持 next_actions、fallback_action、no_action、include_info_count、warnings_as_errors、promote_warning_kinds。 |
返回:同一个报告字典。
结构:
report: Dictionary report payload mutated in place.options: Dictionary controlling report finalization.return: Dictionary finalized report payload.
make_summary¶
- API:
public
生成摘要文本。
参数:
| 名称 | 说明 |
|---|---|
subject |
摘要主题。 |
error_count |
错误数量。 |
warning_count |
警告数量。 |
返回:摘要文本。
get_next_action¶
- API:
public
static func get_next_action( report: Dictionary, action_map: Dictionary = {}, fallback_action: String = "Review the first reported issue.", no_action: String = "No action required.", options: Dictionary = {} ) -> String:
获取报告下一步建议。
参数:
| 名称 | 说明 |
|---|---|
report |
报告字典。 |
action_map |
按问题类别映射的建议文本。 |
fallback_action |
存在问题但未命中映射时返回的建议。 |
no_action |
没有问题时返回的建议。 |
options |
严重级别计算选项。 |
返回:建议文本。
结构:
report: Dictionary report payload.action_map: Dictionary keyed by issue kind with action text values.options: Dictionary severity evaluation options.
has_error_issues¶
- API:
public
检查报告是否包含错误。
参数:
| 名称 | 说明 |
|---|---|
report |
报告字典。 |
options |
严重级别计算选项。 |
返回:存在错误时返回 true。
结构:
report: Dictionary report payload.options: Dictionary severity evaluation options.
make_issue_fingerprint¶
- API:
public
static func make_issue_fingerprint(issue: Variant, fields: PackedStringArray = PackedStringArray()) -> String:
生成稳定的问题指纹,用于项目工具的忽略项、基线和 CI 差异比较。
参数:
| 名称 | 说明 |
|---|---|
issue |
GFValidationIssue 或兼容问题字典。 |
fields |
参与指纹计算的字段;为空时使用 severity、kind、path、source_path、key 和 message。 |
返回:问题指纹;输入无效时返回空字符串。
结构:
issue: Variant accepting GFValidationIssue or Dictionary issue payload.
filter_issues¶
- API:
public
返回应用忽略项和基线后的报告副本。
参数:
| 名称 | 说明 |
|---|---|
report |
输入报告字典,不会被修改。 |
options |
可选过滤设置,支持 ignored_kinds、ignored_paths、ignored_path_patterns、ignored_keys、ignored_fingerprints、baseline_fingerprints、baseline_issues、fingerprint_fields、include_filter_summary。 |
返回:过滤并重新 finalize 的报告副本。
结构:
report: Dictionary report payload.options: Dictionary issue filtering options.return: Dictionary finalized report payload.
promote_warnings¶
- API:
public
static func promote_warnings(report: Dictionary, kinds: PackedStringArray = PackedStringArray()) -> Dictionary:
将报告中的警告提升为错误。
参数:
| 名称 | 说明 |
|---|---|
report |
报告字典。 |
kinds |
为空时提升全部警告;否则只提升匹配类别。 |
返回:同一个报告字典。
结构:
report: Dictionary report payload mutated in place.return: Dictionary report payload mutated in place.