5.2 KiB
5.2 KiB
变更日志
元数据
- 需求编号:014-2
- 创建时间:2026-01-27
- 创建人:SSOT 架构师
- 版本号:v1.0.0
变更概述
实现符号表分析与 DTO 生成功能,利用 Tooling API 的 SymbolTable 功能,解析 Apex 类的内部结构(内部类、方法、变量),为 Java 端自动生成强类型的 DTO(Data Transfer Object),解决 Partner API 只能传输扁平 SObject 的限制。
变更内容
新增功能
- 实现符号表获取功能,通过 ToolingConnection 查询 Apex 类的 SymbolTable
- 实现结构解析器,解析 SymbolTable 中的 innerClasses、methods 和 variables
- 实现 Java 代码生成器,基于解析结果生成符合 Java Bean 规范的源代码
- 实现 Apex 类型到 Java 类型的映射,支持精确映射和降级处理
- 实现 RESTful API 接口,提供符号表查询和 DTO 生成功能
- 实现权限控制和参数验证,确保 API 安全性
- 实现完整的单元测试,测试覆盖率不低于 80%
新增文档
- 需求文档 - 符号表分析与 DTO 生成需求
- 设计文档 - 符号表分析与 DTO 生成设计
- 决策记录 - 符号表分析与 DTO 生成技术选型
- 提示词文档 - 符号表分析与 DTO 生成提示词
- 会话记录 - 符号表分析与 DTO 生成实现会话记录
新增代码文件
异常处理类(3个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/SymbolTableException.java- 符号表获取失败、解析失败异常datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/TypeMappingException.java- 类型映射失败异常datai-salesforce-tooling/src/main/java/com/datai/tooling/exception/CodeGenerationException.java- 代码生成失败异常
实体类(5个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedSymbolTable.java- 解析结果实体类datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedInnerClass.java- 内部类实体类datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedVariable.java- 变量实体类datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedMethod.java- 方法实体类datai-salesforce-tooling/src/main/java/com/datai/tooling/model/domain/ParsedParameter.java- 参数实体类
DTO 类(3个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/model/vo/SymbolTableVo.java- 符号表信息 VOdatai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/GenerateDtoRequest.java- 生成 DTO 请求datai-salesforce-tooling/src/main/java/com/datai/tooling/model/dto/GenerateDtoResponse.java- 生成 DTO 响应
Parser 层(2个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/parser/SymbolTableParser.java- 符号表解析器datai-salesforce-tooling/src/main/java/com/datai/tooling/parser/ApexTypeMapper.java- Apex 类型到 Java 类型的映射器
Generator 层(1个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/generator/JavaCodeGenerator.java- Java 代码生成器
Manager 层(1个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/manager/SymbolTableManager.java- 符号表管理器
Service 层(2个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/service/ISymbolTableService.java- 符号表服务接口datai-salesforce-tooling/src/main/java/com/datai/tooling/service/impl/SymbolTableServiceImpl.java- 符号表服务实现
Controller 层(1个)
datai-salesforce-tooling/src/main/java/com/datai/tooling/controller/SymbolTableController.java- 符号表与 DTO 生成控制器
单元测试(4个)
datai-salesforce-tooling/src/test/java/com/datai/tooling/parser/SymbolTableParserTest.java- 符号表解析器测试datai-salesforce-tooling/src/test/java/com/datai/tooling/parser/ApexTypeMapperTest.java- 类型映射器测试datai-salesforce-tooling/src/test/java/com/datai/tooling/generator/JavaCodeGeneratorTest.java- Java 代码生成器测试datai-salesforce-tooling/src/test/java/com/datai/tooling/service/SymbolTableServiceTest.java- 符号表服务测试
影响范围
- 模块:
datai-salesforce-tooling - 功能:符号表分析与 DTO 生成
- 文件:22 个新文件(5 个文档 + 22 个代码文件)
- 数据库:无变更
技术选型
- 模板引擎:JavaPoet 1.13.0(类型安全、易于维护、性能优秀)
- 框架层:Spring Boot 3.x、Spring Security(权限控制)、Lombok(减少样板代码)、SLF4J(日志记录)
- 依赖管理:Maven