89 lines
5.2 KiB
Markdown
89 lines
5.2 KiB
Markdown
# 变更日志
|
||
|
||
## 元数据
|
||
- 需求编号: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%
|
||
|
||
### 新增文档
|
||
- [需求文档](../requirements/REQ-014-2.md) - 符号表分析与 DTO 生成需求
|
||
- [设计文档](../design/2026-01-27-014-2-符号表分析与DTO生成-设计.md) - 符号表分析与 DTO 生成设计
|
||
- [决策记录](../decisions/adr/2026-01-27-014-2-ADR-符号表分析与DTO生成技术选型.md) - 符号表分析与 DTO 生成技术选型
|
||
- [提示词文档](../prompts/2026-01-27-014-2-prompt-符号表分析与DTO生成.md) - 符号表分析与 DTO 生成提示词
|
||
- [会话记录](../sessions/2026-01-27-014-2-session.md) - 符号表分析与 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` - 符号表信息 VO
|
||
- `datai-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
|
||
|
||
## 相关文档
|
||
- [需求文档](../requirements/REQ-014-2.md)
|
||
- [设计文档](../design/2026-01-27-014-2-符号表分析与DTO生成-设计.md)
|
||
- [决策记录](../decisions/adr/2026-01-27-014-2-ADR-符号表分析与DTO生成技术选型.md)
|
||
- [提示词文档](../prompts/2026-01-27-014-2-prompt-符号表分析与DTO生成.md)
|
||
- [会话记录](../sessions/2026-01-27-014-2-session.md)
|