diff --git a/README.md b/README.md index 841e864..78d6454 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ CN_Tool 是一个基于 Spring Boot 的多模块后端聚合工程,当前仓 其中 `tools` 当前包含: - `activate-tool` +- `mms-mapping` - `wave-tool` ## 启动入口 @@ -29,7 +30,7 @@ CN_Tool 是一个基于 Spring Boot 的多模块后端聚合工程,当前仓 - `entrance/src/main/java/com/njcn/gather/EntranceApplication.java` -`entrance` 模块聚合了 `system`、`user`、`detection`、`activate-tool`、`wave-tool`,是当前运行时主入口。 +`entrance` 模块聚合了 `system`、`user`、`detection`、`activate-tool`、`wave-tool`、`mms-mapping`,是当前运行时主入口。 ## 技术基线 @@ -74,6 +75,8 @@ P0 已补齐基线文档,建议按以下顺序阅读: - 当前以通信基础设施为主,包含 WebSocket / Netty 相关组件 - `tools/activate-tool` - 负责激活码生成、激活码验证、许可证读取等能力 +- `tools/mms-mapping` + - 负责 ICD 文件解析与 MMS 映射数据生成能力 - `tools/wave-tool` - 负责波形文本解析与查看数据组装能力 diff --git a/entrance/pom.xml b/entrance/pom.xml index ad56706..c5cdff1 100644 --- a/entrance/pom.xml +++ b/entrance/pom.xml @@ -38,6 +38,11 @@ wave-tool 1.0.0 + + com.njcn.gather + mms-mapping + 1.0.0 + diff --git a/tools/README.md b/tools/README.md index 37b3426..8f877d2 100644 --- a/tools/README.md +++ b/tools/README.md @@ -7,18 +7,22 @@ 当前真实保留的子模块有: - `activate-tool` +- `mms-mapping` - `wave-tool` -因此,`tools` 现阶段仍然是聚合模块,但当前已实际承载激活工具和波形查看工具两个子模块。 +因此,`tools` 现阶段仍然是聚合模块,但当前已实际承载激活工具、ICD/MMS 映射工具和波形查看工具三个子模块。 ## 当前结构 ```text tools/ ├── activate-tool/ +├── mms-mapping/ └── wave-tool/ ``` +其中 `tools/mms-mapping` 当前 Maven `artifactId` 为 `mms-mapping`。 + ## activate-tool 的职责 `activate-tool` 当前提供的能力主要围绕设备授权与许可证: @@ -42,6 +46,24 @@ tools/ 从接口层看,当前主要围绕 `/wave/*` 路径提供能力。 +## mms-mapping 的职责 + +`mms-mapping` 当前提供的能力主要围绕 ICD 文件解析与 MMS 映射数据生成: + +- 解析 ICD / SCL 文件结构 +- 校验索引选择与绑定关系 +- 生成映射任务结果与文档数据 + +从接口层看,当前主要围绕 `/api/mms-mapping` 路径提供能力。 + +## mms-mapping 配置 + +`mms-mapping` 当前支持以下配置项: + +- `icd.mapping.default-template-path`:默认模板资源路径,默认值为 `template/DefaultCfg.txt` +- `icd.mapping.default-author`:请求未传作者时使用的默认作者,默认值为 `system` +- `icd.mapping.default-output-dir`:请求开启落盘但未指定目录时使用的默认输出目录,默认值为空字符串(即当前工作目录) + ## 模块定位 当前 `activate-tool` 更适合作为平台级基础能力模块,而不是业务检测模块的一部分。 @@ -54,7 +76,7 @@ tools/ ## 依赖关系 -`tools/activate-tool` 与 `tools/wave-tool` 当前主要依赖: +`tools/activate-tool`、`tools/mms-mapping` 与 `tools/wave-tool` 当前主要依赖: - `com.njcn:njcn-common` - `com.njcn:spingboot2.3.12` @@ -71,4 +93,3 @@ tools/ - 同步更新 `tools/pom.xml` - 同步更新本说明文档 - 在 `docs` 下补充模块边界与职责说明 - diff --git a/tools/mms-mapping/pom.xml b/tools/mms-mapping/pom.xml new file mode 100644 index 0000000..f61b169 --- /dev/null +++ b/tools/mms-mapping/pom.xml @@ -0,0 +1,122 @@ + + + 4.0.0 + + + com.njcn.gather + tools + 1.0.0 + + + mms-mapping + jar + + + + com.njcn + njcn-common + 0.0.1 + + + + com.njcn + spingboot2.3.12 + 2.3.12 + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-validation + + + + com.alibaba + fastjson + 1.2.83 + + + + com.fasterxml.jackson.core + jackson-databind + 2.12.0 + + + com.fasterxml.jackson.core + jackson-core + 2.12.0 + + + com.fasterxml.jackson.core + jackson-annotations + 2.12.0 + + + + jakarta.xml.bind + jakarta.xml.bind-api + 2.3.3 + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.3 + + + + org.apache.poi + poi-scratchpad + 4.1.2 + + + org.apache.poi + poi + 4.1.2 + + + org.apache.poi + poi-ooxml-schemas + 4.1.2 + + + org.apache.poi + poi-ooxml + 4.1.2 + + + + org.docx4j + docx4j + 6.1.0 + + + + commons-net + commons-net + 3.10.0 + + + + + mms-mapping + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + + diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/MappingTaskAppService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/MappingTaskAppService.java new file mode 100644 index 0000000..41ed340 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/MappingTaskAppService.java @@ -0,0 +1,135 @@ +package com.njcn.gather.icd.mapping.application; + +import com.njcn.gather.icd.mapping.application.command.GenerateFromIcdCommand; +import com.njcn.gather.icd.mapping.application.result.GenerateMappingResult; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexAnalysis; +import com.njcn.gather.icd.mapping.domain.model.analysis.ValidationResult; +import com.njcn.gather.icd.mapping.domain.model.icd.IcdDocument; +import com.njcn.gather.icd.mapping.domain.model.mapping.MappingDocument; +import com.njcn.gather.icd.mapping.domain.model.template.DefaultTemplate; +import com.njcn.gather.icd.mapping.domain.service.DefaultTemplateLoader; +import com.njcn.gather.icd.mapping.domain.service.IcdParserService; +import com.njcn.gather.icd.mapping.domain.service.IndexAnalysisService; +import com.njcn.gather.icd.mapping.domain.service.IndexValidationService; +import com.njcn.gather.icd.mapping.domain.service.MappingGenerationService; +import com.njcn.gather.icd.mapping.enums.GenerateStatus; +import com.njcn.gather.icd.mapping.infrastructure.serializer.MappingDocumentSerializer; +import com.njcn.gather.icd.mapping.infrastructure.storage.FileStorageService; +import org.springframework.stereotype.Service; + +/** + * 生成任务应用服务。 + * + * 完整流程: + * 1. 解析 ICD; + * 2. 读取 DefaultCfg.txt; + * 3. 按业务分组生成候选项; + * 4. 如果用户未提交绑定关系,返回 NEED_INDEX_SELECTION; + * 5. 如果提交了绑定关系,先做合法性校验; + * 6. 校验通过后生成正式 MappingDocument; + * 7. 序列化并按需落盘。 + */ +@Service +public class MappingTaskAppService { + + private final IcdParserService icdParserService; + private final DefaultTemplateLoader defaultTemplateLoader; + private final IndexAnalysisService indexAnalysisService; + private final IndexValidationService indexValidationService; + private final MappingGenerationService mappingGenerationService; + private final MappingDocumentSerializer mappingDocumentSerializer; + private final FileStorageService fileStorageService; + + public MappingTaskAppService(IcdParserService icdParserService, + DefaultTemplateLoader defaultTemplateLoader, + IndexAnalysisService indexAnalysisService, + IndexValidationService indexValidationService, + MappingGenerationService mappingGenerationService, + MappingDocumentSerializer mappingDocumentSerializer, + FileStorageService fileStorageService) { + this.icdParserService = icdParserService; + this.defaultTemplateLoader = defaultTemplateLoader; + this.indexAnalysisService = indexAnalysisService; + this.indexValidationService = indexValidationService; + this.mappingGenerationService = mappingGenerationService; + this.mappingDocumentSerializer = mappingDocumentSerializer; + this.fileStorageService = fileStorageService; + } + + public GenerateMappingResult generateFromIcd(GenerateFromIcdCommand command) { + GenerateMappingResult result = new GenerateMappingResult(); + try { + // 1. 解析 ICD + IcdDocument icdDocument = icdParserService.parse(command.getFileBytes(), command.getFileName()); + result.setIedName(icdDocument.getIedName()); + result.setLdInst(icdDocument.getLdInst()); + + // 2. 加载 DefaultCfg.txt + DefaultTemplate template = defaultTemplateLoader.load(); + result.getProblems().addAll(template.verify()); + + // 3. 分析索引候选 + IndexAnalysis indexAnalysis = indexAnalysisService.analyze(icdDocument, template); + result.setIndexAnalysis(indexAnalysis); + result.getProblems().addAll(indexAnalysis.getProblems()); + + // 4. 如果没有提交任何绑定关系,则直接返回待匹配项 + if (command.getIndexSelection() == null || command.getIndexSelection().isEmpty()) { + result.setStatus(GenerateStatus.NEED_INDEX_SELECTION); + result.setMessage("索引配置缺失或不合法,请根据候选信息完成标签与数字索引的绑定后重新提交"); + return result; + } + + // 5. 校验用户提交的绑定关系 + ValidationResult validationResult = indexValidationService.validate(indexAnalysis, command.getIndexSelection()); + if (!validationResult.isValid()) { + result.setStatus(GenerateStatus.NEED_INDEX_SELECTION); + result.setMessage("索引配置缺失或不合法,请根据候选信息完成标签与数字索引的绑定后重新提交"); + result.getProblems().addAll(validationResult.getProblems()); + return result; + } + + // 6. 生成正式映射结构 + MappingDocument mappingDocument = mappingGenerationService.generate( + icdDocument, + template, + indexAnalysis, + command.getIndexSelection(), + command.getVersion(), + command.getAuthor() + ); + result.setMappingDocument(mappingDocument); + + // 7. 序列化输出 + String mappingJson = command.isPrettyJson() + ? mappingDocumentSerializer.toPrettyJson(mappingDocument) + : mappingDocumentSerializer.toCompactJson(mappingDocument); + result.setMappingJson(mappingJson); + + if (command.isSaveToDisk()) { + String fileName = buildOutputFileName(icdDocument, command.isPrettyJson()); + String savedPath = fileStorageService.save(fileName, mappingJson, command.getOutputDir()); + result.setSavedPath(savedPath); + } + + result.setStatus(GenerateStatus.SUCCESS); + result.setMessage("映射生成成功"); + return result; + } catch (Exception ex) { + result.setStatus(GenerateStatus.FAILED); + result.setMessage("映射生成失败:" + ex.getMessage()); + result.getProblems().add(ex.getMessage()); + return result; + } + } + + private String buildOutputFileName(IcdDocument icdDocument, boolean prettyJson) { + String baseName = icdDocument.getIedName() == null ? "mapping" : icdDocument.getIedName(); + // 落盘文件名只保留安全字符,避免 IED 名称携带路径分隔符导致越界写入。 + String safeBaseName = baseName.replaceAll("[\\\\/:*?\"<>|]+", "_").trim(); + if (safeBaseName.isEmpty()) { + safeBaseName = "mapping"; + } + return safeBaseName + (prettyJson ? "-mapping-pretty.json" : "-mapping.json"); + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/GenerateFromIcdCommand.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/GenerateFromIcdCommand.java new file mode 100644 index 0000000..23d7479 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/GenerateFromIcdCommand.java @@ -0,0 +1,102 @@ +package com.njcn.gather.icd.mapping.application.command; + +import java.util.ArrayList; +import java.util.List; + +/** + * 生成命令对象。 + * + * 说明: + * controller 层不要把 MultipartFile 和 request 直接传进领域服务; + * 统一转成 command,便于应用层做流程编排。 + */ +public class GenerateFromIcdCommand { + + /** 原始文件名。 */ + private String fileName; + + /** ICD 文件字节数组。 */ + private byte[] fileBytes; + + /** 输出版本号。 */ + private String version; + + /** 作者。 */ + private String author; + + /** 是否保存到磁盘。 */ + private boolean saveToDisk; + + /** 是否输出美化 JSON。 */ + private boolean prettyJson; + + /** 输出目录。 */ + private String outputDir; + + /** 用户上送的索引选择结果。 */ + private List indexSelection = new ArrayList(); + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public byte[] getFileBytes() { + return fileBytes; + } + + public void setFileBytes(byte[] fileBytes) { + this.fileBytes = fileBytes; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public boolean isSaveToDisk() { + return saveToDisk; + } + + public void setSaveToDisk(boolean saveToDisk) { + this.saveToDisk = saveToDisk; + } + + public boolean isPrettyJson() { + return prettyJson; + } + + public void setPrettyJson(boolean prettyJson) { + this.prettyJson = prettyJson; + } + + public String getOutputDir() { + return outputDir; + } + + public void setOutputDir(String outputDir) { + this.outputDir = outputDir; + } + + public List getIndexSelection() { + return indexSelection; + } + + public void setIndexSelection(List indexSelection) { + this.indexSelection = indexSelection; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/IndexBindingCommand.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/IndexBindingCommand.java new file mode 100644 index 0000000..44a065b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/IndexBindingCommand.java @@ -0,0 +1,51 @@ +package com.njcn.gather.icd.mapping.application.command; + +/** + * 应用层单条绑定命令。 + */ +public class IndexBindingCommand { + + /** 报告名。 */ + private String reportName; + + /** 数据集名。 */ + private String dataSetName; + + /** 标签。 */ + private String label; + + /** 绑定到的 lnInst 数字。 */ + private String lnInst; + + public String getReportName() { + return reportName; + } + + public void setReportName(String reportName) { + this.reportName = reportName; + } + + public String getDataSetName() { + return dataSetName; + } + + public void setDataSetName(String dataSetName) { + this.dataSetName = dataSetName; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getLnInst() { + return lnInst; + } + + public void setLnInst(String lnInst) { + this.lnInst = lnInst; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/IndexSelectionGroupCommand.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/IndexSelectionGroupCommand.java new file mode 100644 index 0000000..ad7e239 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/command/IndexSelectionGroupCommand.java @@ -0,0 +1,43 @@ +package com.njcn.gather.icd.mapping.application.command; + +import java.util.ArrayList; +import java.util.List; + +/** + * 应用层分组选择命令。 + */ +public class IndexSelectionGroupCommand { + + /** 分组唯一键。 */ + private String groupKey; + + /** 分组中文描述。 */ + private String groupDesc; + + /** 当前分组下的多条绑定关系。 */ + private List bindings = new ArrayList(); + + public String getGroupKey() { + return groupKey; + } + + public void setGroupKey(String groupKey) { + this.groupKey = groupKey; + } + + public String getGroupDesc() { + return groupDesc; + } + + public void setGroupDesc(String groupDesc) { + this.groupDesc = groupDesc; + } + + public List getBindings() { + return bindings; + } + + public void setBindings(List bindings) { + this.bindings = bindings; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/result/GenerateMappingResult.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/result/GenerateMappingResult.java new file mode 100644 index 0000000..1330121 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/application/result/GenerateMappingResult.java @@ -0,0 +1,42 @@ +package com.njcn.gather.icd.mapping.application.result; + +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexAnalysis; +import com.njcn.gather.icd.mapping.domain.model.mapping.MappingDocument; +import com.njcn.gather.icd.mapping.enums.GenerateStatus; + +import java.util.ArrayList; +import java.util.List; + +/** + * 应用层返回对象。统一封装成功、需要选择索引、失败三类结果。 + */ +public class GenerateMappingResult { + private GenerateStatus status; + private String message; + private String iedName; + private String ldInst; + private IndexAnalysis indexAnalysis; + private MappingDocument mappingDocument; + private String mappingJson; + private String savedPath; + private List problems = new ArrayList(); + + public GenerateStatus getStatus() { return status; } + public void setStatus(GenerateStatus status) { this.status = status; } + public String getMessage() { return message; } + public void setMessage(String message) { this.message = message; } + public String getIedName() { return iedName; } + public void setIedName(String iedName) { this.iedName = iedName; } + public String getLdInst() { return ldInst; } + public void setLdInst(String ldInst) { this.ldInst = ldInst; } + public IndexAnalysis getIndexAnalysis() { return indexAnalysis; } + public void setIndexAnalysis(IndexAnalysis indexAnalysis) { this.indexAnalysis = indexAnalysis; } + public MappingDocument getMappingDocument() { return mappingDocument; } + public void setMappingDocument(MappingDocument mappingDocument) { this.mappingDocument = mappingDocument; } + public String getMappingJson() { return mappingJson; } + public void setMappingJson(String mappingJson) { this.mappingJson = mappingJson; } + public String getSavedPath() { return savedPath; } + public void setSavedPath(String savedPath) { this.savedPath = savedPath; } + public List getProblems() { return problems; } + public void setProblems(List problems) { this.problems = problems; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/config/MappingModuleConfig.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/config/MappingModuleConfig.java new file mode 100644 index 0000000..3021ca7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/config/MappingModuleConfig.java @@ -0,0 +1,52 @@ +package com.njcn.gather.icd.mapping.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * 模块配置。 + * 模块配置类。集中管理默认作者、默认模板路径等可配置项。 + * + * 说明: + * 1. 这里把模板路径、输出目录、默认作者等集中管理。 + * 2. 当前先用 @Value + 默认值,后续你也可以改成 @ConfigurationProperties。 + */ +@Component +public class MappingModuleConfig { + + /** 默认模板资源路径。 */ + @Value("${icd.mapping.default-template-path:template/DefaultCfg.txt}") + private String defaultTemplatePath; + + /** 默认作者。 */ + @Value("${icd.mapping.default-author:system}") + private String defaultAuthor; + + /** 默认输出目录。 */ + @Value("${icd.mapping.default-output-dir:}") + private String defaultOutputDir; + + public String getDefaultTemplatePath() { + return defaultTemplatePath; + } + + public void setDefaultTemplatePath(String defaultTemplatePath) { + this.defaultTemplatePath = defaultTemplatePath; + } + + public String getDefaultAuthor() { + return defaultAuthor; + } + + public void setDefaultAuthor(String defaultAuthor) { + this.defaultAuthor = defaultAuthor; + } + + public String getDefaultOutputDir() { + return defaultOutputDir; + } + + public void setDefaultOutputDir(String defaultOutputDir) { + this.defaultOutputDir = defaultOutputDir; + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/MappingController.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/MappingController.java new file mode 100644 index 0000000..292057d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/MappingController.java @@ -0,0 +1,50 @@ +package com.njcn.gather.icd.mapping.controller; + +import com.njcn.gather.icd.mapping.application.MappingTaskAppService; +import com.njcn.gather.icd.mapping.application.command.GenerateFromIcdCommand; +import com.njcn.gather.icd.mapping.application.result.GenerateMappingResult; +import com.njcn.gather.icd.mapping.controller.request.GenerateMappingFromIcdRequest; +import com.njcn.gather.icd.mapping.controller.response.MappingTaskResponse; +import com.njcn.gather.icd.mapping.converter.MappingRequestConverter; +import com.njcn.gather.icd.mapping.converter.MappingResponseConverter; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +/** + * ICD 映射接口。 + */ +@RestController +@RequestMapping("/api/mms-mapping") +public class MappingController { + + private final MappingTaskAppService mappingTaskAppService; + private final MappingRequestConverter requestConverter; + private final MappingResponseConverter responseConverter; + + public MappingController(MappingTaskAppService mappingTaskAppService, + MappingRequestConverter requestConverter, + MappingResponseConverter responseConverter) { + this.mappingTaskAppService = mappingTaskAppService; + this.requestConverter = requestConverter; + this.responseConverter = responseConverter; + } + + /** + * 上传 ICD 并生成映射。 + * + * 表单参数: + * 1. icdFile:ICD 文件 + * 2. request:JSON 请求体 + */ + @PostMapping(value = "/generate-from-icd", consumes = {"multipart/form-data"}) + public MappingTaskResponse generateFromIcd(@RequestPart("icdFile") MultipartFile icdFile, + @Validated @RequestPart("request") GenerateMappingFromIcdRequest request) { + GenerateFromIcdCommand command = requestConverter.toCommand(icdFile, request); + GenerateMappingResult result = mappingTaskAppService.generateFromIcd(command); + return responseConverter.fromResult(result); + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/GenerateMappingFromIcdRequest.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/GenerateMappingFromIcdRequest.java new file mode 100644 index 0000000..e9f86de --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/GenerateMappingFromIcdRequest.java @@ -0,0 +1,89 @@ +package com.njcn.gather.icd.mapping.controller.request; + +import java.util.ArrayList; +import java.util.List; + +/** + * 生成映射接口请求体。 + * + * 说明: + * 1. 旧版结构中,indexSelection 是 Map,只能表达“一个报告对应一个值”, + * 无法表达“一个业务分组下有多个报告、一个报告下又有多条标签绑定”的真实场景。 + * 2. 新版结构改成 List,用来完整承载用户在前端完成的绑定结果。 + * 3. 第一次只上传 ICD 时,这个字段可以为空;第二次用户确认绑定后再把完整结构上送即可。 + */ +public class GenerateMappingFromIcdRequest { + + /** 输出版本号。为空时后端默认补 1.0。 */ + private String version; + + /** 作者。为空时默认空字符串。 */ + private String author; + + /** 是否保存到磁盘。 */ + private boolean saveToDisk; + + /** 是否返回美化 JSON。 */ + private boolean prettyJson; + + /** 输出目录。saveToDisk=true 时才会用到。 */ + private String outputDir; + + /** + * 索引选择结果。 + * + * 说明: + * 1. 每一个元素代表一个“业务分组”,例如:实时数据、统计数据、波动闪变。 + * 2. 每个业务分组下面又包含多条绑定关系。 + * 3. 允许为空;为空时后端返回 NEED_INDEX_SELECTION,给前端候选参考项。 + */ + private List indexSelection = new ArrayList(); + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public boolean isSaveToDisk() { + return saveToDisk; + } + + public void setSaveToDisk(boolean saveToDisk) { + this.saveToDisk = saveToDisk; + } + + public boolean isPrettyJson() { + return prettyJson; + } + + public void setPrettyJson(boolean prettyJson) { + this.prettyJson = prettyJson; + } + + public String getOutputDir() { + return outputDir; + } + + public void setOutputDir(String outputDir) { + this.outputDir = outputDir; + } + + public List getIndexSelection() { + return indexSelection; + } + + public void setIndexSelection(List indexSelection) { + this.indexSelection = indexSelection; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/IndexBindingRequest.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/IndexBindingRequest.java new file mode 100644 index 0000000..7f64576 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/IndexBindingRequest.java @@ -0,0 +1,59 @@ +package com.njcn.gather.icd.mapping.controller.request; + +/** + * 单条索引绑定请求。 + * + * 一条绑定只表达一个最小关系: + * 某个报告(reportName)下,使用某个标签(label)与某个 lnInst 数字做绑定。 + * + * 这样做的好处: + * 1. 一个报告可以出现多次,对应多个标签。 + * 2. 一个业务分组下也可以有多个报告。 + * 3. 后端校验、生成映射时都更容易逐条处理。 + */ +public class IndexBindingRequest { + + /** 绑定发生在哪个报告上,例如:brcbStHarm。 */ + private String reportName; + + /** 绑定发生在哪个数据集上,例如:dsStHarm。 */ + private String dataSetName; + + /** 业务标签,例如:最大值、最小值、实时数据。 */ + private String label; + + /** 当前标签最终绑定到的 lnInst 数字,例如:1、2、8。 */ + private String lnInst; + + public String getReportName() { + return reportName; + } + + public void setReportName(String reportName) { + this.reportName = reportName; + } + + public String getDataSetName() { + return dataSetName; + } + + public void setDataSetName(String dataSetName) { + this.dataSetName = dataSetName; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getLnInst() { + return lnInst; + } + + public void setLnInst(String lnInst) { + this.lnInst = lnInst; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/IndexSelectionGroupRequest.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/IndexSelectionGroupRequest.java new file mode 100644 index 0000000..5d2b77e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/request/IndexSelectionGroupRequest.java @@ -0,0 +1,53 @@ +package com.njcn.gather.icd.mapping.controller.request; + +import java.util.ArrayList; +import java.util.List; + +/** + * 单个业务分组的索引选择请求。 + * + * 例如: + * - groupKey = REALTIME_DATA + * - groupDesc = 实时数据 + * - bindings = 多条“报告 + 标签 + lnInst”的绑定关系 + */ +public class IndexSelectionGroupRequest { + + /** + * 分组唯一键。 + * + * 说明: + * 这个值由后端在 NEED_INDEX_SELECTION 时返回,前端原样带回即可,避免仅靠中文描述做匹配。 + */ + private String groupKey; + + /** 分组中文描述,例如:实时数据、统计数据。 */ + private String groupDesc; + + /** 当前业务分组下,用户最终确认的绑定关系。 */ + private List bindings = new ArrayList(); + + public String getGroupKey() { + return groupKey; + } + + public void setGroupKey(String groupKey) { + this.groupKey = groupKey; + } + + public String getGroupDesc() { + return groupDesc; + } + + public void setGroupDesc(String groupDesc) { + this.groupDesc = groupDesc; + } + + public List getBindings() { + return bindings; + } + + public void setBindings(List bindings) { + this.bindings = bindings; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/IndexCandidateReportItemResponse.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/IndexCandidateReportItemResponse.java new file mode 100644 index 0000000..687b7ff --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/IndexCandidateReportItemResponse.java @@ -0,0 +1,54 @@ +package com.njcn.gather.icd.mapping.controller.response; + +import java.util.ArrayList; +import java.util.List; + +/** + * 索引候选分组下的单个报告响应。 + */ +public class IndexCandidateReportItemResponse { + + /** 报告名称。 */ + private String reportName; + + /** 数据集名称。 */ + private String dataSetName; + + /** 报告描述。 */ + private String reportDesc; + + /** 当前报告可选的 lnInst 数字。 */ + private List availableLnInstValues = new ArrayList(); + + public String getReportName() { + return reportName; + } + + public void setReportName(String reportName) { + this.reportName = reportName; + } + + public String getDataSetName() { + return dataSetName; + } + + public void setDataSetName(String dataSetName) { + this.dataSetName = dataSetName; + } + + public String getReportDesc() { + return reportDesc; + } + + public void setReportDesc(String reportDesc) { + this.reportDesc = reportDesc; + } + + public List getAvailableLnInstValues() { + return availableLnInstValues; + } + + public void setAvailableLnInstValues(List availableLnInstValues) { + this.availableLnInstValues = availableLnInstValues; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/IndexCandidateResponse.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/IndexCandidateResponse.java new file mode 100644 index 0000000..d6c9f74 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/IndexCandidateResponse.java @@ -0,0 +1,71 @@ +package com.njcn.gather.icd.mapping.controller.response; + +import java.util.ArrayList; +import java.util.List; + +/** + * 索引候选返回对象。 + * + * 说明: + * 这是给前端“待匹配界面”使用的正式结构: + * - 一个候选就是一个业务分组; + * - 分组下面再挂多个报告; + * - 前端根据 templateLabels 与 reports[*].availableLnInstValues 做人工绑定。 + */ +public class IndexCandidateResponse { + + /** 分组唯一键。 */ + private String groupKey; + + /** 分组中文描述。 */ + private String groupDesc; + + /** 当前分组包含的报告数。 */ + private int reportCount; + + /** 模板里配置的可选标签。 */ + private List templateLabels = new ArrayList(); + + /** 当前分组下的报告候选列表。 */ + private List reports = new ArrayList(); + + public String getGroupKey() { + return groupKey; + } + + public void setGroupKey(String groupKey) { + this.groupKey = groupKey; + } + + public String getGroupDesc() { + return groupDesc; + } + + public void setGroupDesc(String groupDesc) { + this.groupDesc = groupDesc; + } + + public int getReportCount() { + return reportCount; + } + + public void setReportCount(int reportCount) { + this.reportCount = reportCount; + } + + public List getTemplateLabels() { + return templateLabels; + } + + public void setTemplateLabels(List templateLabels) { + this.templateLabels = templateLabels; + } + + public List getReports() { + return reports; + } + + public void setReports(List reports) { + this.reports = reports; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/MappingDocumentResponse.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/MappingDocumentResponse.java new file mode 100644 index 0000000..31fcfd9 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/MappingDocumentResponse.java @@ -0,0 +1,26 @@ +package com.njcn.gather.icd.mapping.controller.response; + +/** + * 映射摘要响应。 + * 映射摘要响应 DTO。用于把最终映射的关键信息单独封装返回。 + */ +public class MappingDocumentResponse { + private String version; + private String author; + private String ied; + private String ld; + private int reportCount; + private int dataSetCount; + public String getVersion() { return version; } + public void setVersion(String version) { this.version = version; } + public String getAuthor() { return author; } + public void setAuthor(String author) { this.author = author; } + public String getIed() { return ied; } + public void setIed(String ied) { this.ied = ied; } + public String getLd() { return ld; } + public void setLd(String ld) { this.ld = ld; } + public int getReportCount() { return reportCount; } + public void setReportCount(int reportCount) { this.reportCount = reportCount; } + public int getDataSetCount() { return dataSetCount; } + public void setDataSetCount(int dataSetCount) { this.dataSetCount = dataSetCount; } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/MappingTaskResponse.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/MappingTaskResponse.java new file mode 100644 index 0000000..1b10c01 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/controller/response/MappingTaskResponse.java @@ -0,0 +1,40 @@ +package com.njcn.gather.icd.mapping.controller.response; + +import com.njcn.gather.icd.mapping.enums.GenerateStatus; + +import java.util.ArrayList; +import java.util.List; + +/** + * 第一个接口统一响应。 + * 接口统一响应 DTO。返回生成状态、映射内容、候选索引、问题列表等。 + */ +public class MappingTaskResponse { + private GenerateStatus status; + private String message; + private String iedName; + private String ldInst; + private String mappingJson; + private String savedPath; + private MappingDocumentResponse mappingDocument; + private List indexCandidates = new ArrayList(); + private List problems = new ArrayList(); + public GenerateStatus getStatus() { return status; } + public void setStatus(GenerateStatus status) { this.status = status; } + public String getMessage() { return message; } + public void setMessage(String message) { this.message = message; } + public String getIedName() { return iedName; } + public void setIedName(String iedName) { this.iedName = iedName; } + public String getLdInst() { return ldInst; } + public void setLdInst(String ldInst) { this.ldInst = ldInst; } + public String getMappingJson() { return mappingJson; } + public void setMappingJson(String mappingJson) { this.mappingJson = mappingJson; } + public String getSavedPath() { return savedPath; } + public void setSavedPath(String savedPath) { this.savedPath = savedPath; } + public MappingDocumentResponse getMappingDocument() { return mappingDocument; } + public void setMappingDocument(MappingDocumentResponse mappingDocument) { this.mappingDocument = mappingDocument; } + public List getIndexCandidates() { return indexCandidates; } + public void setIndexCandidates(List indexCandidates) { this.indexCandidates = indexCandidates; } + public List getProblems() { return problems; } + public void setProblems(List problems) { this.problems = problems; } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/converter/MappingRequestConverter.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/converter/MappingRequestConverter.java new file mode 100644 index 0000000..d57d816 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/converter/MappingRequestConverter.java @@ -0,0 +1,82 @@ +package com.njcn.gather.icd.mapping.converter; + +import com.njcn.gather.icd.mapping.application.command.GenerateFromIcdCommand; +import com.njcn.gather.icd.mapping.application.command.IndexBindingCommand; +import com.njcn.gather.icd.mapping.application.command.IndexSelectionGroupCommand; +import com.njcn.gather.icd.mapping.config.MappingModuleConfig; +import com.njcn.gather.icd.mapping.controller.request.GenerateMappingFromIcdRequest; +import com.njcn.gather.icd.mapping.controller.request.IndexBindingRequest; +import com.njcn.gather.icd.mapping.controller.request.IndexSelectionGroupRequest; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +/** + * 请求转换器。 + * + * 作用: + * 1. 把接口层 request 转成应用层 command。 + * 2. 统一处理 null 和空集合,避免后面业务层到处判空。 + */ +@Component +public class MappingRequestConverter { + + private final MappingModuleConfig moduleConfig; + + public MappingRequestConverter(MappingModuleConfig moduleConfig) { + this.moduleConfig = moduleConfig; + } + + public GenerateFromIcdCommand toCommand(MultipartFile icdFile, GenerateMappingFromIcdRequest request) { + try { + if (icdFile == null || icdFile.isEmpty()) { + throw new IllegalArgumentException("ICD 文件不能为空"); + } + GenerateFromIcdCommand command = new GenerateFromIcdCommand(); + command.setFileName(icdFile.getOriginalFilename()); + command.setFileBytes(icdFile.getBytes()); + command.setVersion(request == null ? null : request.getVersion()); + command.setAuthor(resolveText(request == null ? null : request.getAuthor(), moduleConfig.getDefaultAuthor())); + command.setSaveToDisk(request != null && request.isSaveToDisk()); + command.setPrettyJson(request == null || request.isPrettyJson()); + command.setOutputDir(resolveText(request == null ? null : request.getOutputDir(), moduleConfig.getDefaultOutputDir())); + + if (request != null && request.getIndexSelection() != null) { + for (IndexSelectionGroupRequest groupRequest : request.getIndexSelection()) { + if (groupRequest == null) { + continue; + } + IndexSelectionGroupCommand groupCommand = new IndexSelectionGroupCommand(); + groupCommand.setGroupKey(groupRequest.getGroupKey()); + groupCommand.setGroupDesc(groupRequest.getGroupDesc()); + + if (groupRequest.getBindings() != null) { + for (IndexBindingRequest bindingRequest : groupRequest.getBindings()) { + if (bindingRequest == null) { + continue; + } + IndexBindingCommand bindingCommand = new IndexBindingCommand(); + bindingCommand.setReportName(bindingRequest.getReportName()); + bindingCommand.setDataSetName(bindingRequest.getDataSetName()); + bindingCommand.setLabel(bindingRequest.getLabel()); + bindingCommand.setLnInst(bindingRequest.getLnInst()); + groupCommand.getBindings().add(bindingCommand); + } + } + + command.getIndexSelection().add(groupCommand); + } + } + + return command; + } catch (Exception ex) { + throw new IllegalArgumentException("请求转换失败:" + ex.getMessage(), ex); + } + } + + private String resolveText(String value, String defaultValue) { + if (value != null && !value.trim().isEmpty()) { + return value.trim(); + } + return defaultValue == null ? null : defaultValue.trim(); + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/converter/MappingResponseConverter.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/converter/MappingResponseConverter.java new file mode 100644 index 0000000..ff6844a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/converter/MappingResponseConverter.java @@ -0,0 +1,70 @@ +package com.njcn.gather.icd.mapping.converter; + +import com.njcn.gather.icd.mapping.application.result.GenerateMappingResult; +import com.njcn.gather.icd.mapping.controller.response.IndexCandidateReportItemResponse; +import com.njcn.gather.icd.mapping.controller.response.IndexCandidateResponse; +import com.njcn.gather.icd.mapping.controller.response.MappingDocumentResponse; +import com.njcn.gather.icd.mapping.controller.response.MappingTaskResponse; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidate; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidateReportItem; +import org.springframework.stereotype.Component; + +/** + * 响应转换器。 + * + * 作用: + * 1. 把应用层结果转换成接口层响应对象; + * 2. 对待匹配索引场景,输出新的“按业务分组返回”的结构。 + */ +@Component +public class MappingResponseConverter { + + public MappingTaskResponse fromResult(GenerateMappingResult result) { + MappingTaskResponse response = new MappingTaskResponse(); + response.setStatus(result.getStatus()); + response.setMessage(result.getMessage()); + response.setIedName(result.getIedName()); + response.setLdInst(result.getLdInst()); + response.setMappingJson(result.getMappingJson()); + response.setSavedPath(result.getSavedPath()); + response.getProblems().addAll(result.getProblems()); + + if (result.getIndexAnalysis() != null && result.getIndexAnalysis().getCandidates() != null) { + for (IndexCandidate candidate : result.getIndexAnalysis().getCandidates()) { + IndexCandidateResponse candidateResponse = new IndexCandidateResponse(); + candidateResponse.setGroupKey(candidate.getGroupKey()); + candidateResponse.setGroupDesc(candidate.getGroupDesc()); + candidateResponse.setReportCount(candidate.getReportCount()); + candidateResponse.getTemplateLabels().addAll(candidate.getTemplateLabels()); + + if (candidate.getReports() != null) { + for (IndexCandidateReportItem item : candidate.getReports()) { + IndexCandidateReportItemResponse itemResponse = new IndexCandidateReportItemResponse(); + itemResponse.setReportName(item.getReportName()); + itemResponse.setDataSetName(item.getDataSetName()); + itemResponse.setReportDesc(item.getReportDesc()); + itemResponse.getAvailableLnInstValues().addAll(item.getAvailableLnInstValues()); + candidateResponse.getReports().add(itemResponse); + } + } + + response.getIndexCandidates().add(candidateResponse); + } + } + + if (result.getMappingDocument() != null) { + MappingDocumentResponse doc = new MappingDocumentResponse(); + doc.setVersion(result.getMappingDocument().getVersion()); + doc.setAuthor(result.getMappingDocument().getAuthor()); + doc.setIed(result.getMappingDocument().getIed()); + doc.setLd(result.getMappingDocument().getLd()); + doc.setReportCount(result.getMappingDocument().getReportMap() == null + ? 0 : result.getMappingDocument().getReportMap().size()); + doc.setDataSetCount(result.getMappingDocument().getDataSetList() == null + ? 0 : result.getMappingDocument().getDataSetList().size()); + response.setMappingDocument(doc); + } + + return response; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexAnalysis.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexAnalysis.java new file mode 100644 index 0000000..dd3f714 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexAnalysis.java @@ -0,0 +1,20 @@ +package com.njcn.gather.icd.mapping.domain.model.analysis; + +import java.util.ArrayList; +import java.util.List; + +/** + * 索引分析结果。 + * 索引分析结果模型。保存每个报告可选的 lnInst 候选列表及问题清单。 + * + * key = reportName + */ +public class IndexAnalysis { + private List candidates = new ArrayList(); + private List problems = new ArrayList(); + + public List getCandidates() { return candidates; } + public void setCandidates(List candidates) { this.candidates = candidates; } + public List getProblems() { return problems; } + public void setProblems(List problems) { this.problems = problems; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexCandidate.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexCandidate.java new file mode 100644 index 0000000..957ca83 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexCandidate.java @@ -0,0 +1,113 @@ +package com.njcn.gather.icd.mapping.domain.model.analysis; + +import java.util.ArrayList; +import java.util.List; + +/** + * 索引候选分组。 + * + * 说明: + * 1. 一条候选对应一个业务分组,例如:统计数据、实时数据; + * 2. 一个业务分组下可以包含多个报告; + * 3. 这里不仅保存返回给前端的候选项,也保存从 DefaultCfg.ReportList 带下来的配置项, + * 供后续 MappingGenerationService 直接使用,避免“二次查模板”失败。 + */ +public class IndexCandidate { + + /** 分组唯一键。 */ + private String groupKey; + + /** 分组描述。 */ + private String groupDesc; + + /** 该分组下实际匹配到的报告数量。 */ + private int reportCount; + + /** DefaultCfg.txt 中该分组可用的标签模板。 */ + private List templateLabels = new ArrayList(); + + /** 当前分组下匹配到的报告列表。 */ + private List reports = new ArrayList(); + + /** + * DefaultCfg.ReportList.inst + * 例如:01 / 02 / 03 / 04 + */ + private String reportInst; + + /** + * DefaultCfg.ReportList.Select + * 例如:DataStatFileMap / DataRealFileMap / FlickerFileMap + */ + private String select; + + /** + * DefaultCfg.ReportList.TrgOps + * 例如:40 / 96 + */ + private String trgOps; + + public String getGroupKey() { + return groupKey; + } + + public void setGroupKey(String groupKey) { + this.groupKey = groupKey; + } + + public String getGroupDesc() { + return groupDesc; + } + + public void setGroupDesc(String groupDesc) { + this.groupDesc = groupDesc; + } + + public int getReportCount() { + return reportCount; + } + + public void setReportCount(int reportCount) { + this.reportCount = reportCount; + } + + public List getTemplateLabels() { + return templateLabels; + } + + public void setTemplateLabels(List templateLabels) { + this.templateLabels = templateLabels; + } + + public List getReports() { + return reports; + } + + public void setReports(List reports) { + this.reports = reports; + } + + public String getReportInst() { + return reportInst; + } + + public void setReportInst(String reportInst) { + this.reportInst = reportInst; + } + + public String getSelect() { + return select; + } + + public void setSelect(String select) { + this.select = select; + } + + public String getTrgOps() { + return trgOps; + } + + public void setTrgOps(String trgOps) { + this.trgOps = trgOps; + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexCandidateReportItem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexCandidateReportItem.java new file mode 100644 index 0000000..3620ae7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/IndexCandidateReportItem.java @@ -0,0 +1,56 @@ +package com.njcn.gather.icd.mapping.domain.model.analysis; + +import java.util.ArrayList; +import java.util.List; + +/** + * 候选分组下的单个报告项。 + * + * 这个对象专门给前端展示“这个分组下面有哪些报告,以及每个报告对应哪些可用 lnInst 数字”。 + */ +public class IndexCandidateReportItem { + + /** 报告名称。 */ + private String reportName; + + /** 数据集名称。 */ + private String dataSetName; + + /** 报告中文描述。一般和分组描述相同,保留它是为了前端渲染更灵活。 */ + private String reportDesc; + + /** 当前报告在 ICD 中解析出来的所有可选 lnInst 数字。 */ + private List availableLnInstValues = new ArrayList(); + + public String getReportName() { + return reportName; + } + + public void setReportName(String reportName) { + this.reportName = reportName; + } + + public String getDataSetName() { + return dataSetName; + } + + public void setDataSetName(String dataSetName) { + this.dataSetName = dataSetName; + } + + public String getReportDesc() { + return reportDesc; + } + + public void setReportDesc(String reportDesc) { + this.reportDesc = reportDesc; + } + + public List getAvailableLnInstValues() { + return availableLnInstValues; + } + + public void setAvailableLnInstValues(List availableLnInstValues) { + this.availableLnInstValues = availableLnInstValues; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/ValidationResult.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/ValidationResult.java new file mode 100644 index 0000000..1ed5c89 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/analysis/ValidationResult.java @@ -0,0 +1,18 @@ +package com.njcn.gather.icd.mapping.domain.model.analysis; + +import java.util.ArrayList; +import java.util.List; + +/** + * 校验结果。 + * 索引校验结果模型。保存是否通过以及问题列表。 + */ +public class ValidationResult { + private boolean valid; + private List problems = new ArrayList(); + + public boolean isValid() { return valid; } + public void setValid(boolean valid) { this.valid = valid; } + public List getProblems() { return problems; } + public void setProblems(List problems) { this.problems = problems; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DataSetNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DataSetNode.java new file mode 100644 index 0000000..04e7a31 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DataSetNode.java @@ -0,0 +1,17 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +import java.util.ArrayList; +import java.util.List; + +/** + * DataSet 节点。 + * 数据集模型。用于承接 DataSet 下的 FCDA 列表。 + */ +public class DataSetNode { + private String name; + private List fcdas = new ArrayList(); + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public List getFcdas() { return fcdas; } + public void setFcdas(List fcdas) { this.fcdas = fcdas; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DoiElementNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DoiElementNode.java new file mode 100644 index 0000000..23cf301 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DoiElementNode.java @@ -0,0 +1,31 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +import java.util.ArrayList; +import java.util.List; + +/** + * DOI/SDI/DAI 统一节点。 + * DOI/SDI/DAI 细项模型。用于递归承接 DOI 树明细。 + * + * kind 常见值: + * - SDI + * - DAI + */ +public class DoiElementNode { + private String kind; + private String name; + private Long ix; + private List values = new ArrayList(); + private List children = new ArrayList(); + + public String getKind() { return kind; } + public void setKind(String kind) { this.kind = kind; } + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public Long getIx() { return ix; } + public void setIx(Long ix) { this.ix = ix; } + public List getValues() { return values; } + public void setValues(List values) { this.values = values; } + public List getChildren() { return children; } + public void setChildren(List children) { this.children = children; } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DoiNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DoiNode.java new file mode 100644 index 0000000..51f7a37 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/DoiNode.java @@ -0,0 +1,30 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +import java.util.ArrayList; +import java.util.List; + +/** + * DOI 节点。 + * DOI 模型。表示逻辑节点下的一个数据对象节点。 + */ +public class DoiNode { + private String name; + private Long ix; + private String lnClass; + private String lnInst; + private int sequenceCount; + private List children = new ArrayList(); + + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public Long getIx() { return ix; } + public void setIx(Long ix) { this.ix = ix; } + public String getLnClass() { return lnClass; } + public void setLnClass(String lnClass) { this.lnClass = lnClass; } + public String getLnInst() { return lnInst; } + public void setLnInst(String lnInst) { this.lnInst = lnInst; } + public int getSequenceCount() { return sequenceCount; } + public void setSequenceCount(int sequenceCount) { this.sequenceCount = sequenceCount; } + public List getChildren() { return children; } + public void setChildren(List children) { this.children = children; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/FcdaNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/FcdaNode.java new file mode 100644 index 0000000..db985bf --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/FcdaNode.java @@ -0,0 +1,36 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +/** + * FCDA 节点。 + * FCDA 模型。保存 lnClass、lnInst、doName、daName、fc、ix 等信息。 + */ +public class FcdaNode { + private String ldInst; + private String prefix; + private String lnClass; + private String lnInst; + private String doName; + private String daName; + private String fc; + private Long ix; + private int sequenceCount; + + public String getLdInst() { return ldInst; } + public void setLdInst(String ldInst) { this.ldInst = ldInst; } + public String getPrefix() { return prefix; } + public void setPrefix(String prefix) { this.prefix = prefix; } + public String getLnClass() { return lnClass; } + public void setLnClass(String lnClass) { this.lnClass = lnClass; } + public String getLnInst() { return lnInst; } + public void setLnInst(String lnInst) { this.lnInst = lnInst; } + public String getDoName() { return doName; } + public void setDoName(String doName) { this.doName = doName; } + public String getDaName() { return daName; } + public void setDaName(String daName) { this.daName = daName; } + public String getFc() { return fc; } + public void setFc(String fc) { this.fc = fc; } + public Long getIx() { return ix; } + public void setIx(Long ix) { this.ix = ix; } + public int getSequenceCount() { return sequenceCount; } + public void setSequenceCount(int sequenceCount) { this.sequenceCount = sequenceCount; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/IcdDocument.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/IcdDocument.java new file mode 100644 index 0000000..d3aed97 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/IcdDocument.java @@ -0,0 +1,46 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * ICD 文档聚合根。 + * ICD 统一领域模型的聚合根。承接 IED、LDevice、ReportControl、DataSet、LN 等解析结果。 + * + * 说明: + * 1. 这是系统内部统一的 ICD 模型。 + * 2. 外部 JAXB generated 类只在 parser 层使用。 + * 3. 业务层全部依赖这个标准化模型,便于后续替换解析实现。 + */ +public class IcdDocument { + private String fileName; + private String iedName; + private String ldInst; + private String ldPrefix; + private IedNode primaryIed; + private LogicalDeviceNode logicalDevice; + private List logicalNodes = new ArrayList(); + private List reportControls = new ArrayList(); + private Map dataSets = new LinkedHashMap(); + + public String getFileName() { return fileName; } + public void setFileName(String fileName) { this.fileName = fileName; } + public String getIedName() { return iedName; } + public void setIedName(String iedName) { this.iedName = iedName; } + public String getLdInst() { return ldInst; } + public void setLdInst(String ldInst) { this.ldInst = ldInst; } + public String getLdPrefix() { return ldPrefix; } + public void setLdPrefix(String ldPrefix) { this.ldPrefix = ldPrefix; } + public IedNode getPrimaryIed() { return primaryIed; } + public void setPrimaryIed(IedNode primaryIed) { this.primaryIed = primaryIed; } + public LogicalDeviceNode getLogicalDevice() { return logicalDevice; } + public void setLogicalDevice(LogicalDeviceNode logicalDevice) { this.logicalDevice = logicalDevice; } + public List getLogicalNodes() { return logicalNodes; } + public void setLogicalNodes(List logicalNodes) { this.logicalNodes = logicalNodes; } + public List getReportControls() { return reportControls; } + public void setReportControls(List reportControls) { this.reportControls = reportControls; } + public Map getDataSets() { return dataSets; } + public void setDataSets(Map dataSets) { this.dataSets = dataSets; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/IedNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/IedNode.java new file mode 100644 index 0000000..efc1a35 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/IedNode.java @@ -0,0 +1,20 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +import java.util.ArrayList; +import java.util.List; + +/** + * IED 节点。 + * IED 节点模型。保存 IED 名称以及其下逻辑设备引用。 + */ +public class IedNode { + private String name; + private List accessPointNames = new ArrayList(); + private List lDeviceInstList = new ArrayList(); + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public List getAccessPointNames() { return accessPointNames; } + public void setAccessPointNames(List accessPointNames) { this.accessPointNames = accessPointNames; } + public List getLDeviceInstList() { return lDeviceInstList; } + public void setLDeviceInstList(List lDeviceInstList) { this.lDeviceInstList = lDeviceInstList; } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/LnNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/LnNode.java new file mode 100644 index 0000000..f106aa4 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/LnNode.java @@ -0,0 +1,32 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +import java.util.ArrayList; +import java.util.List; + +/** + * 逻辑节点。 + * 逻辑节点模型。保存 lnClass、lnInst、prefix、DOI 等信息。 + * + * LN0 和 LN 最终都统一抽象为这个模型。 + */ +public class LnNode { + private boolean ln0; + private String prefix; + private String lnClass; + private String lnInst; + private String lnType; + private List doiList = new ArrayList(); + + public boolean isLn0() { return ln0; } + public void setLn0(boolean ln0) { this.ln0 = ln0; } + public String getPrefix() { return prefix; } + public void setPrefix(String prefix) { this.prefix = prefix; } + public String getLnClass() { return lnClass; } + public void setLnClass(String lnClass) { this.lnClass = lnClass; } + public String getLnInst() { return lnInst; } + public void setLnInst(String lnInst) { this.lnInst = lnInst; } + public String getLnType() { return lnType; } + public void setLnType(String lnType) { this.lnType = lnType; } + public List getDoiList() { return doiList; } + public void setDoiList(List doiList) { this.doiList = doiList; } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/LogicalDeviceNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/LogicalDeviceNode.java new file mode 100644 index 0000000..07a47c2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/LogicalDeviceNode.java @@ -0,0 +1,14 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +/** + * 逻辑设备节点。 + * 逻辑设备模型。保存 inst、prefix 以及其下 LN/LN0 列表。 + */ +public class LogicalDeviceNode { + private String inst; + private String ldName; + public String getInst() { return inst; } + public void setInst(String inst) { this.inst = inst; } + public String getLdName() { return ldName; } + public void setLdName(String ldName) { this.ldName = ldName; } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/ReportControlNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/ReportControlNode.java new file mode 100644 index 0000000..476295d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/icd/ReportControlNode.java @@ -0,0 +1,29 @@ +package com.njcn.gather.icd.mapping.domain.model.icd; + +/** + * ReportControl 节点。 + * 报告控制块模型。用于保存报告名称、关联 DataSet、缓冲属性等。 + */ +public class ReportControlNode { + private String name; + private String rptId; + private boolean buffered; + private String dataSetName; + private String trgOps; + private String confRev; + + public String getName() { return name; } + public void setName(String name) { this.name = name; } + public String getRptId() { return rptId; } + public void setRptId(String rptId) { this.rptId = rptId; } + public boolean isBuffered() { return buffered; } + public void setBuffered(boolean buffered) { this.buffered = buffered; } + public String getDataSetName() { return dataSetName; } + public void setDataSetName(String dataSetName) { this.dataSetName = dataSetName; } + public String getTrgOps() { return trgOps; } + public void setTrgOps(String trgOps) { this.trgOps = trgOps; } + public String getConfRev() { return confRev; } + public void setConfRev(String confRev) { this.confRev = confRev; } + public Boolean getBuffered() { return buffered; } + public void setBuffered(Boolean buffered) { this.buffered = buffered; } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/DataSetSelectionState.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/DataSetSelectionState.java new file mode 100644 index 0000000..14d8f84 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/DataSetSelectionState.java @@ -0,0 +1,103 @@ +package com.njcn.gather.icd.mapping.domain.model.intermediate; + +import com.njcn.gather.icd.mapping.domain.model.icd.LnNode; + +import java.util.ArrayList; +import java.util.List; + +/** + * 最终参与生成 DataSetList 的选择状态。 + * + * 关键修正: + * 旧版本一个绑定只保存一个 LnNode,导致: + * - MSQI 整组丢失 + * - MHAI 只生成一半 + * + * 新版本改成: + * 一个绑定可以关联多个 LnNode,后续生成阶段再逐个展开。 + */ +public class DataSetSelectionState { + + /** 所属分组 key。 */ + private String groupKey; + + /** 所属分组 desc。 */ + private String groupDesc; + + /** 报告名。 */ + private String reportName; + + /** 数据集名。 */ + private String dataSetName; + + /** 绑定标签。 */ + private String label; + + /** 绑定的 lnInst。 */ + private String lnInst; + + /** + * 当前绑定最终命中的 LN 节点列表。 + * + * 说明: + * 同一个 lnInst 在不同 lnClass 下可能都需要展开, + * 例如:MMXU / MSQI / MHAI。 + */ + private List lnNodes = new ArrayList(); + + public String getGroupKey() { + return groupKey; + } + + public void setGroupKey(String groupKey) { + this.groupKey = groupKey; + } + + public String getGroupDesc() { + return groupDesc; + } + + public void setGroupDesc(String groupDesc) { + this.groupDesc = groupDesc; + } + + public String getReportName() { + return reportName; + } + + public void setReportName(String reportName) { + this.reportName = reportName; + } + + public String getDataSetName() { + return dataSetName; + } + + public void setDataSetName(String dataSetName) { + this.dataSetName = dataSetName; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getLnInst() { + return lnInst; + } + + public void setLnInst(String lnInst) { + this.lnInst = lnInst; + } + + public List getLnNodes() { + return lnNodes; + } + + public void setLnNodes(List lnNodes) { + this.lnNodes = lnNodes; + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportAndDataSetState.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportAndDataSetState.java new file mode 100644 index 0000000..d4b7950 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportAndDataSetState.java @@ -0,0 +1,59 @@ +package com.njcn.gather.icd.mapping.domain.model.intermediate; + +import java.util.ArrayList; +import java.util.List; + +/** + * 中间态总对象。 + * + * 作用: + * 1. 对应原 C# 里“先形成中间态,再做最终 JSON 组装”的思路; + * 2. 把业务分组、用户绑定、最终 DataSet 选择结果集中保存; + * 3. 避免在 MappingGenerationService 里直接边遍历边拼 JSON,便于后续扩展和排查。 + */ +public class ReportAndDataSetState { + + /** IED 名称。 */ + private String iedName; + + /** LD 实例名。 */ + private String ldInst; + + /** 分组状态列表。 */ + private List reportGroups = new ArrayList(); + + /** 数据集选择状态列表。 */ + private List dataSetSelections = new ArrayList(); + + public String getIedName() { + return iedName; + } + + public void setIedName(String iedName) { + this.iedName = iedName; + } + + public String getLdInst() { + return ldInst; + } + + public void setLdInst(String ldInst) { + this.ldInst = ldInst; + } + + public List getReportGroups() { + return reportGroups; + } + + public void setReportGroups(List reportGroups) { + this.reportGroups = reportGroups; + } + + public List getDataSetSelections() { + return dataSetSelections; + } + + public void setDataSetSelections(List dataSetSelections) { + this.dataSetSelections = dataSetSelections; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportBindingState.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportBindingState.java new file mode 100644 index 0000000..e433073 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportBindingState.java @@ -0,0 +1,73 @@ +package com.njcn.gather.icd.mapping.domain.model.intermediate; + +/** + * 单条最终有效绑定关系的中间态。 + */ +public class ReportBindingState { + + /** 分组 key。 */ + private String groupKey; + + /** 分组描述。 */ + private String groupDesc; + + /** 报告名。 */ + private String reportName; + + /** 数据集名。 */ + private String dataSetName; + + /** 标签。 */ + private String label; + + /** 绑定的 lnInst 数字。 */ + private String lnInst; + + public String getGroupKey() { + return groupKey; + } + + public void setGroupKey(String groupKey) { + this.groupKey = groupKey; + } + + public String getGroupDesc() { + return groupDesc; + } + + public void setGroupDesc(String groupDesc) { + this.groupDesc = groupDesc; + } + + public String getReportName() { + return reportName; + } + + public void setReportName(String reportName) { + this.reportName = reportName; + } + + public String getDataSetName() { + return dataSetName; + } + + public void setDataSetName(String dataSetName) { + this.dataSetName = dataSetName; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getLnInst() { + return lnInst; + } + + public void setLnInst(String lnInst) { + this.lnInst = lnInst; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportGroupState.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportGroupState.java new file mode 100644 index 0000000..385c303 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/intermediate/ReportGroupState.java @@ -0,0 +1,100 @@ +package com.njcn.gather.icd.mapping.domain.model.intermediate; + +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidateReportItem; + +import java.util.ArrayList; +import java.util.List; + +/** + * 单个业务分组的中间态。 + */ +public class ReportGroupState { + + /** 分组唯一键。 */ + private String groupKey; + + /** 分组描述。 */ + private String groupDesc; + + /** 当前分组匹配到的报告数量。 */ + private int reportCount; + + /** 报表 inst(来自 DefaultCfg.ReportList.inst)。 */ + private String reportInst; + + /** Select(来自 DefaultCfg.ReportList.Select)。 */ + private String select; + + /** TrgOps(来自 DefaultCfg.ReportList.TrgOps)。 */ + private String trgOps; + + /** 当前分组包含的报告列表。 */ + private List reportItems = new ArrayList(); + + /** 用户最终确认的绑定关系。 */ + private List bindings = new ArrayList(); + + public String getGroupKey() { + return groupKey; + } + + public void setGroupKey(String groupKey) { + this.groupKey = groupKey; + } + + public String getGroupDesc() { + return groupDesc; + } + + public void setGroupDesc(String groupDesc) { + this.groupDesc = groupDesc; + } + + public int getReportCount() { + return reportCount; + } + + public void setReportCount(int reportCount) { + this.reportCount = reportCount; + } + + public String getReportInst() { + return reportInst; + } + + public void setReportInst(String reportInst) { + this.reportInst = reportInst; + } + + public String getSelect() { + return select; + } + + public void setSelect(String select) { + this.select = select; + } + + public String getTrgOps() { + return trgOps; + } + + public void setTrgOps(String trgOps) { + this.trgOps = trgOps; + } + + public List getReportItems() { + return reportItems; + } + + public void setReportItems(List reportItems) { + this.reportItems = reportItems; + } + + public List getBindings() { + return bindings; + } + + public void setBindings(List bindings) { + this.bindings = bindings; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/DataSetGroupItem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/DataSetGroupItem.java new file mode 100644 index 0000000..e6cf35f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/DataSetGroupItem.java @@ -0,0 +1,43 @@ +package com.njcn.gather.icd.mapping.domain.model.mapping; + +import java.util.ArrayList; +import java.util.List; + +/** + * 最终映射中的 DataSetList 单项。 + */ +public class DataSetGroupItem { + + /** 分组描述。一般来自 LnClassList.desc。 */ + private String desc; + + /** lnClass。 */ + private String lnClass; + + /** 该 lnClass 下的 inst 列表。 */ + private List instList = new ArrayList(); + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getLnClass() { + return lnClass; + } + + public void setLnClass(String lnClass) { + this.lnClass = lnClass; + } + + public List getInstList() { + return instList; + } + + public void setInstList(List instList) { + this.instList = instList; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/DoiItem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/DoiItem.java new file mode 100644 index 0000000..1aa5f35 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/DoiItem.java @@ -0,0 +1,120 @@ +package com.njcn.gather.icd.mapping.domain.model.mapping; + +import java.util.ArrayList; +import java.util.List; + +/** + * 最终映射中的 doiList 单项。 + */ +public class DoiItem { + + /** DOI 名称。 */ + private String name; + + /** DOI 描述。 */ + private String desc; + + /** 起始序号。 */ + private int start; + + /** 结束序号。 */ + private int end; + + /** 单位。 */ + private String unit; + + /** 系数。 */ + private float coefficient; + + /** 基波标志。 */ + private int baseflag; + + /** 基波数量。 */ + private int basecount; + + /** ICD 实际序列数。 */ + private int icdcout; + + /** SDI 列表。 */ + private List sdiList = new ArrayList(); + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public int getStart() { + return start; + } + + public void setStart(int start) { + this.start = start; + } + + public int getEnd() { + return end; + } + + public void setEnd(int end) { + this.end = end; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public float getCoefficient() { + return coefficient; + } + + public void setCoefficient(float coefficient) { + this.coefficient = coefficient; + } + + public int getBaseflag() { + return baseflag; + } + + public void setBaseflag(int baseflag) { + this.baseflag = baseflag; + } + + public int getBasecount() { + return basecount; + } + + public void setBasecount(int basecount) { + this.basecount = basecount; + } + + public int getIcdcout() { + return icdcout; + } + + public void setIcdcout(int icdcout) { + this.icdcout = icdcout; + } + + public List getSdiList() { + return sdiList; + } + + public void setSdiList(List sdiList) { + this.sdiList = sdiList; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/InstItem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/InstItem.java new file mode 100644 index 0000000..5e30e02 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/InstItem.java @@ -0,0 +1,43 @@ +package com.njcn.gather.icd.mapping.domain.model.mapping; + +import java.util.ArrayList; +import java.util.List; + +/** + * 最终映射中的 instList 单项。 + */ +public class InstItem { + + /** lnInst。 */ + private String inst; + + /** 该 inst 的描述。通常使用当前绑定的 label。 */ + private String desc; + + /** DOI 列表。 */ + private List doiList = new ArrayList(); + + public String getInst() { + return inst; + } + + public void setInst(String inst) { + this.inst = inst; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public List getDoiList() { + return doiList; + } + + public void setDoiList(List doiList) { + this.doiList = doiList; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/MappingDocument.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/MappingDocument.java new file mode 100644 index 0000000..a029389 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/MappingDocument.java @@ -0,0 +1,127 @@ +package com.njcn.gather.icd.mapping.domain.model.mapping; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.ArrayList; +import java.util.List; + +/** + * 最终映射文档。 + * + * 关键说明: + * 1. Java 字段统一使用 lowerCamelCase,避免 Jackson 同时输出 ied/IED 这类重复字段。 + * 2. JSON 输出名通过 @JsonProperty 显式指定,确保与原 C# 输出格式一致。 + */ +public class MappingDocument { + + @JsonProperty("version") + private String version; + + @JsonProperty("author") + private String author; + + @JsonProperty("IED") + private String ied; + + @JsonProperty("LD") + private String ld; + + /** + * 原 C# mainFrom.txt 固定调用: + * Set_WaveTimeFlag("BeiJing") + */ + @JsonProperty("WaveTimeFlag") + private String waveTimeFlag; + + /** + * 原 C# mainFrom.txt 固定调用: + * Set_DataType("1") + */ + @JsonProperty("DataType") + private String dataType; + + /** + * 原 C# mainFrom.txt 固定调用: + * Set_unit("1") + */ + @JsonProperty("unit") + private String unit; + + @JsonProperty("ReportMap") + private List reportMap = new ArrayList(); + + @JsonProperty("DataSetList") + private List dataSetList = new ArrayList(); + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getIed() { + return ied; + } + + public void setIed(String ied) { + this.ied = ied; + } + + public String getLd() { + return ld; + } + + public void setLd(String ld) { + this.ld = ld; + } + + public String getWaveTimeFlag() { + return waveTimeFlag; + } + + public void setWaveTimeFlag(String waveTimeFlag) { + this.waveTimeFlag = waveTimeFlag; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public List getReportMap() { + return reportMap; + } + + public void setReportMap(List reportMap) { + this.reportMap = reportMap; + } + + public List getDataSetList() { + return dataSetList; + } + + public void setDataSetList(List dataSetList) { + this.dataSetList = dataSetList; + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/ReportMapItem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/ReportMapItem.java new file mode 100644 index 0000000..0063d7b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/ReportMapItem.java @@ -0,0 +1,124 @@ +package com.njcn.gather.icd.mapping.domain.model.mapping; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * 最终映射中的 ReportMap 单项。 + * + * 关键说明: + * 1. 原 C# 不是把同组报告合并成一条,而是组内每个报告各自输出一条。 + * 2. 但 reportCount 仍然写该分组总数。 + * 3. buffered 不是 boolean,而是: + * - true -> BR + * - false -> RP + */ +public class ReportMapItem { + + @JsonProperty("desc") + private String desc; + + @JsonProperty("reportCount") + private int reportCount; + + @JsonProperty("rptID") + private String rptId; + + @JsonProperty("name") + private String name; + + @JsonProperty("buffered") + private String buffered; + + @JsonProperty("inst") + private String inst; + + /** + * 原 C# Set_FlickerFlag() 当前固定写 "0" + */ + @JsonProperty("FlickerFlag") + private String flickerFlag; + + /** + * 原 C# 来自 DefaultCfg.ReportList.Select + */ + @JsonProperty("Select") + private String select; + + /** + * 原 C# 来自 DefaultCfg.ReportList.TrgOps + */ + @JsonProperty("TrgOps") + private String trgOps; + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public int getReportCount() { + return reportCount; + } + + public void setReportCount(int reportCount) { + this.reportCount = reportCount; + } + + public String getRptId() { + return rptId; + } + + public void setRptId(String rptId) { + this.rptId = rptId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBuffered() { + return buffered; + } + + public void setBuffered(String buffered) { + this.buffered = buffered; + } + + public String getInst() { + return inst; + } + + public void setInst(String inst) { + this.inst = inst; + } + + public String getFlickerFlag() { + return flickerFlag; + } + + public void setFlickerFlag(String flickerFlag) { + this.flickerFlag = flickerFlag; + } + + public String getSelect() { + return select; + } + + public void setSelect(String select) { + this.select = select; + } + + public String getTrgOps() { + return trgOps; + } + + public void setTrgOps(String trgOps) { + this.trgOps = trgOps; + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/SdiItem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/SdiItem.java new file mode 100644 index 0000000..71c5aae --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/SdiItem.java @@ -0,0 +1,43 @@ +package com.njcn.gather.icd.mapping.domain.model.mapping; + +import java.util.ArrayList; +import java.util.List; + +/** + * 最终映射中的 sdiList 单项。 + */ +public class SdiItem { + + /** SDI 名称。 */ + private String name; + + /** SDI 描述。 */ + private String desc; + + /** 类型列表。 */ + private List typeList = new ArrayList(); + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public List getTypeList() { + return typeList; + } + + public void setTypeList(List typeList) { + this.typeList = typeList; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/TypeItem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/TypeItem.java new file mode 100644 index 0000000..81c133f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/mapping/TypeItem.java @@ -0,0 +1,29 @@ +package com.njcn.gather.icd.mapping.domain.model.mapping; + +/** + * 最终映射中的 typeList 单项。 + */ +public class TypeItem { + + /** 类型名称。 */ + private String name; + + /** 类型描述。 */ + private String desc; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/template/DefaultTemplate.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/template/DefaultTemplate.java new file mode 100644 index 0000000..b369b60 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/model/template/DefaultTemplate.java @@ -0,0 +1,345 @@ +package com.njcn.gather.icd.mapping.domain.model.template; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +/** + * 默认模板。 + * 默认模板模型。把 default-template.json 解析成可直接使用的对象。 + * + * 当前只保留第一个接口真正会用到的部分。 + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class DefaultTemplate { + + @JsonProperty("ReportList") + private List reportList = new ArrayList(); + + @JsonProperty("LnClassList") + private List lnClassList = new ArrayList(); + + @JsonProperty("PhaseList") + private List phaseList = new ArrayList(); + + @JsonProperty("MultiplierList") + private List multiplierList = new ArrayList(); + + @JsonProperty("UnitList") + private List unitList = new ArrayList(); + + @JsonProperty("TypeList") + private List typeList = new ArrayList(); + + @JsonProperty("DataObjectsList") + private List dataObjectsList = new ArrayList(); + + /** + * 基础校验。 + * + * 返回问题列表;为空表示通过。 + */ + public List verify() { + List problems = new ArrayList(); + ensureDuplicateNames("LnClassList", extractNames(lnClassList), problems); + ensureDuplicateNames("PhaseList", extractNames(phaseList), problems); + ensureDuplicateNames("MultiplierList", extractNames(multiplierList), problems); + ensureDuplicateNames("UnitList", extractNames(unitList), problems); + ensureDuplicateNames("TypeList", extractNames(typeList), problems); + ensureDuplicateObjectNames(problems); + if (reportList == null || reportList.isEmpty()) { + problems.add("DefaultCfg.ReportList 为空"); + } + return problems; + } + + private List extractNames(List list) { + List names = new ArrayList(); + if (list == null) { + return names; + } + for (NameListSupport item : list) { + if (item.getNameList() != null) { + names.addAll(item.getNameList()); + } + } + return names; + } + + private void ensureDuplicateNames(String section, List names, List problems) { + Set set = new HashSet(); + for (String name : names) { + if (name == null) { + continue; + } + String key = name.trim(); + if (!set.add(key)) { + problems.add(section + " 中存在重复配置项:" + key); + } + } + } + + private void ensureDuplicateObjectNames(List problems) { + if (dataObjectsList == null) { + return; + } + for (DataObjectCfgItem dataObject : dataObjectsList) { + List names = new ArrayList(); + if (dataObject.getObjectList() != null) { + for (ObjectCfgItem object : dataObject.getObjectList()) { + if (object.getNameList() != null) { + names.addAll(object.getNameList()); + } + } + } + ensureDuplicateNames("DataObjectsList[" + dataObject.getDesc() + "]", names, problems); + } + } + + public List getReportList() { + return reportList; + } + + public void setReportList(List reportList) { + this.reportList = reportList; + } + + public List getLnClassList() { + return lnClassList; + } + + public void setLnClassList(List lnClassList) { + this.lnClassList = lnClassList; + } + + public List getPhaseList() { + return phaseList; + } + + public void setPhaseList(List phaseList) { + this.phaseList = phaseList; + } + + public List getMultiplierList() { + return multiplierList; + } + + public void setMultiplierList(List multiplierList) { + this.multiplierList = multiplierList; + } + + public List getUnitList() { + return unitList; + } + + public void setUnitList(List unitList) { + this.unitList = unitList; + } + + public List getTypeList() { + return typeList; + } + + public void setTypeList(List typeList) { + this.typeList = typeList; + } + + public List getDataObjectsList() { + return dataObjectsList; + } + + public void setDataObjectsList(List dataObjectsList) { + this.dataObjectsList = dataObjectsList; + } + + /** 统一抽象:凡是有 nameList 的配置项都实现它。 */ + public interface NameListSupport { + List getNameList(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ReportCfgItem { + + /** + * 报告分组描述,例如:统计数据、实时数据、波动闪变 + */ + @JsonProperty("desc") + private String desc; + + /** + * 报告 inst,例如:01 + */ + @JsonProperty("inst") + private String inst; + + /** + * 原始配置中的 TrgOps。 + * 例如:40 / 96 + * + * 这里必须显式加 @JsonProperty("TrgOps"), + * 否则在当前项目里很容易反序列化后为 null。 + */ + @JsonProperty("TrgOps") + private String trgOps; + + /** + * 原始配置中的 Select。 + * 例如:DataStatFileMap / DataRealFileMap / FlickerFileMap + * + * 这里必须显式加 @JsonProperty("Select"), + * 否则在当前项目里很容易反序列化后为 null。 + */ + @JsonProperty("Select") + private String select; + + /** + * 该分组覆盖的数据集名称列表 + */ + @JsonProperty("DataSetList") + private List dataSetList = new ArrayList(); + + /** + * 该分组可配置的标签模板列表 + */ + @JsonProperty("LnInstList") + private List lnInstList = new ArrayList(); + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getInst() { + return inst; + } + + public void setInst(String inst) { + this.inst = inst; + } + + public String getTrgOps() { + return trgOps; + } + + public void setTrgOps(String trgOps) { + this.trgOps = trgOps; + } + + public String getSelect() { + return select; + } + + public void setSelect(String select) { + this.select = select; + } + + public List getDataSetList() { + return dataSetList; + } + + public void setDataSetList(List dataSetList) { + this.dataSetList = dataSetList; + } + + public List getLnInstList() { + return lnInstList; + } + + public void setLnInstList(List lnInstList) { + this.lnInstList = lnInstList; + } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class LnClassCfgItem implements NameListSupport { + private String desc; + private List nameList = new ArrayList(); + public String getDesc() { return desc; } + public void setDesc(String desc) { this.desc = desc; } + public List getNameList() { return nameList; } + public void setNameList(List nameList) { this.nameList = nameList; } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class PhaseCfgItem implements NameListSupport { + private String desc; + private List nameList = new ArrayList(); + public String getDesc() { return desc; } + public void setDesc(String desc) { this.desc = desc; } + public List getNameList() { return nameList; } + public void setNameList(List nameList) { this.nameList = nameList; } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class MultiplierCfgItem implements NameListSupport { + private int multiplier; + private List nameList = new ArrayList(); + public int getMultiplier() { return multiplier; } + public void setMultiplier(int multiplier) { this.multiplier = multiplier; } + public List getNameList() { return nameList; } + public void setNameList(List nameList) { this.nameList = nameList; } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class UnitCfgItem implements NameListSupport { + private String desc; + private List nameList = new ArrayList(); + public String getDesc() { return desc; } + public void setDesc(String desc) { this.desc = desc; } + public List getNameList() { return nameList; } + public void setNameList(List nameList) { this.nameList = nameList; } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class TypeCfgItem implements NameListSupport { + private String desc; + private List nameList = new ArrayList(); + public String getDesc() { return desc; } + public void setDesc(String desc) { this.desc = desc; } + public List getNameList() { return nameList; } + public void setNameList(List nameList) { this.nameList = nameList; } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class DataObjectCfgItem { + private String desc; + @JsonProperty("LnInstList") + private List lnInstList = new ArrayList(); + @JsonProperty("ObjectList") + private List objectList = new ArrayList(); + public String getDesc() { return desc; } + public void setDesc(String desc) { this.desc = desc; } + public List getLnInstList() { return lnInstList; } + public void setLnInstList(List lnInstList) { this.lnInstList = lnInstList; } + public List getObjectList() { return objectList; } + public void setObjectList(List objectList) { this.objectList = objectList; } + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class ObjectCfgItem implements NameListSupport { + private String desc; + private int baseflag; + private int basecount; + private int queuecount; + private List nameList = new ArrayList(); + private List queueList = new ArrayList(); + public String getDesc() { return desc; } + public void setDesc(String desc) { this.desc = desc; } + public int getBaseflag() { return baseflag; } + public void setBaseflag(int baseflag) { this.baseflag = baseflag; } + public int getBasecount() { return basecount; } + public void setBasecount(int basecount) { this.basecount = basecount; } + public int getQueuecount() { return queuecount; } + public void setQueuecount(int queuecount) { this.queuecount = queuecount; } + public List getNameList() { return nameList; } + public void setNameList(List nameList) { this.nameList = nameList; } + public List getQueueList() { return queueList; } + public void setQueueList(List queueList) { this.queueList = queueList; } + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/DefaultTemplateLoader.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/DefaultTemplateLoader.java new file mode 100644 index 0000000..852ea08 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/DefaultTemplateLoader.java @@ -0,0 +1,69 @@ +package com.njcn.gather.icd.mapping.domain.service; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.njcn.gather.icd.mapping.config.MappingModuleConfig; +import com.njcn.gather.icd.mapping.domain.model.template.DefaultTemplate; +import com.njcn.gather.icd.mapping.utils.JsonUtils; +import org.springframework.core.io.ClassPathResource; +import org.springframework.stereotype.Service; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.List; + +/** + * 默认配置加载器。 + * + * 说明: + * 1. 直接读取 DefaultCfg.txt。 + * 2. 读取后按 DefaultTemplate 原始模型反序列化。 + */ +@Service +public class DefaultTemplateLoader { + + private final MappingModuleConfig moduleConfig; + private final ObjectMapper objectMapper; + + public DefaultTemplateLoader(MappingModuleConfig moduleConfig) { + this.moduleConfig = moduleConfig; + this.objectMapper = new ObjectMapper(); + this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + } + + public DefaultTemplate load() { + try { + ClassPathResource resource = new ClassPathResource(moduleConfig.getDefaultTemplatePath()); + if (!resource.exists()) { + throw new IllegalArgumentException("默认模板文件不存在:" + moduleConfig.getDefaultTemplatePath()); + } + byte[] bytes = readAllBytes(resource); + if (bytes.length == 0) { + throw new IllegalArgumentException("默认模板文件为空"); + } + String json = new String(bytes, StandardCharsets.UTF_8); + json = JsonUtils.sanitizeJson(json); + DefaultTemplate template = objectMapper.readValue(json, DefaultTemplate.class); + List problems = template.verify(); + if (!problems.isEmpty()) { + throw new IllegalArgumentException("DefaultCfg.txt 校验失败:" + String.join(";", problems)); + } + return template; + } catch (Exception ex) { + throw new IllegalArgumentException("加载 DefaultCfg.txt 失败:" + ex.getMessage(), ex); + } + } + + private byte[] readAllBytes(ClassPathResource resource) throws Exception { + try (InputStream inputStream = resource.getInputStream(); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { + byte[] buffer = new byte[4096]; + int length; + while ((length = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, length); + } + return outputStream.toByteArray(); + } + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IcdParserService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IcdParserService.java new file mode 100644 index 0000000..729fd63 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IcdParserService.java @@ -0,0 +1,23 @@ +package com.njcn.gather.icd.mapping.domain.service; + +import com.njcn.gather.icd.mapping.domain.model.icd.IcdDocument; +import com.njcn.gather.icd.mapping.infrastructure.parser.SclParserAdapter; +import org.springframework.stereotype.Service; + +/** + * ICD 解析服务。 + * ICD 解析领域服务门面。对应用层隐藏底层 JAXB 解析细节。 + */ +@Service +public class IcdParserService { + + private final SclParserAdapter parserAdapter; + + public IcdParserService(SclParserAdapter parserAdapter) { + this.parserAdapter = parserAdapter; + } + + public IcdDocument parse(byte[] bytes, String fileName) { + return parserAdapter.parse(bytes, fileName); + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IndexAnalysisService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IndexAnalysisService.java new file mode 100644 index 0000000..3365211 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IndexAnalysisService.java @@ -0,0 +1,168 @@ +package com.njcn.gather.icd.mapping.domain.service; + +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexAnalysis; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidate; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidateReportItem; +import com.njcn.gather.icd.mapping.domain.model.icd.DataSetNode; +import com.njcn.gather.icd.mapping.domain.model.icd.FcdaNode; +import com.njcn.gather.icd.mapping.domain.model.icd.IcdDocument; +import com.njcn.gather.icd.mapping.domain.model.icd.ReportControlNode; +import com.njcn.gather.icd.mapping.domain.model.template.DefaultTemplate; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Locale; +import java.util.Set; + +/** + * 索引候选分析服务。 + * + * 说明: + * 1. 新版不再按“单个报告”平铺返回,而是按 DefaultCfg.ReportList 的业务配置项聚合。 + * 2. 一个业务配置项下可能包含多个报告,因此这里会计算 reportCount,并返回 reports 子列表。 + * 3. templateLabels 只是模板参考,不要求与 ICD 解析到的 lnInst 数量完全一一对应。 + * 4. 关键修正: + * 在这里就把 DefaultCfg.ReportList 的 inst / Select / TrgOps 一并带入 IndexCandidate, + * 后续正式生成阶段直接使用,不再重新查模板。 + */ +@Service +public class IndexAnalysisService { + + public IndexAnalysis analyze(IcdDocument icdDocument, DefaultTemplate template) { + IndexAnalysis analysis = new IndexAnalysis(); + if (icdDocument == null) { + analysis.getProblems().add("ICD 文档为空"); + return analysis; + } + if (template == null || template.getReportList() == null) { + analysis.getProblems().add("DefaultCfg.ReportList 为空"); + return analysis; + } + + // 先按模板分组聚合 + for (DefaultTemplate.ReportCfgItem reportCfg : template.getReportList()) { + List matchedReports = collectMatchedReports(icdDocument, reportCfg); + if (matchedReports.isEmpty()) { + continue; + } + + IndexCandidate candidate = new IndexCandidate(); + candidate.setGroupKey(buildGroupKey(reportCfg)); + candidate.setGroupDesc(reportCfg.getDesc()); + candidate.setReportCount(matchedReports.size()); + + // 关键:把 DefaultCfg.ReportList 的配置项直接带入候选对象 + candidate.setReportInst(reportCfg.getInst()); + candidate.setSelect(reportCfg.getSelect()); + candidate.setTrgOps(reportCfg.getTrgOps()); + + if (reportCfg.getLnInstList() != null) { + candidate.getTemplateLabels().addAll(reportCfg.getLnInstList()); + } + + for (ReportControlNode reportControl : matchedReports) { + IndexCandidateReportItem item = new IndexCandidateReportItem(); + item.setReportName(reportControl.getName()); + item.setDataSetName(reportControl.getDataSetName()); + item.setReportDesc(reportCfg.getDesc()); + item.getAvailableLnInstValues().addAll(collectLnInstValues(icdDocument, reportControl.getDataSetName())); + candidate.getReports().add(item); + } + + analysis.getCandidates().add(candidate); + } + + // 再检查是否有 ICD 报告没有被模板覆盖 + if (icdDocument.getReportControls() != null) { + for (ReportControlNode reportControl : icdDocument.getReportControls()) { + if (!isCoveredByTemplate(reportControl, template)) { + analysis.getProblems().add( + "报告 " + reportControl.getName() + + " 未在 DefaultCfg.ReportList 中匹配到配置;dataSet=" + reportControl.getDataSetName() + ); + } + } + } + + return analysis; + } + + private List collectMatchedReports(IcdDocument icdDocument, DefaultTemplate.ReportCfgItem reportCfg) { + List result = new ArrayList(); + if (icdDocument.getReportControls() == null || reportCfg.getDataSetList() == null) { + return result; + } + for (ReportControlNode reportControl : icdDocument.getReportControls()) { + if (reportCfg.getDataSetList().contains(reportControl.getDataSetName())) { + result.add(reportControl); + } + } + return result; + } + + private boolean isCoveredByTemplate(ReportControlNode reportControl, DefaultTemplate template) { + if (template == null || template.getReportList() == null) { + return false; + } + for (DefaultTemplate.ReportCfgItem reportCfg : template.getReportList()) { + if (reportCfg.getDataSetList() != null && reportCfg.getDataSetList().contains(reportControl.getDataSetName())) { + return true; + } + } + return false; + } + + private List collectLnInstValues(IcdDocument icdDocument, String dataSetName) { + if (icdDocument.getDataSets() == null) { + return Collections.emptyList(); + } + + DataSetNode dataSetNode = icdDocument.getDataSets().get(dataSetName); + if (dataSetNode == null || dataSetNode.getFcdas() == null) { + return Collections.emptyList(); + } + + Set unique = new LinkedHashSet(); + for (FcdaNode fcda : dataSetNode.getFcdas()) { + if (fcda == null || fcda.getLnInst() == null) { + continue; + } + String lnInst = fcda.getLnInst().trim(); + if (!lnInst.isEmpty()) { + unique.add(lnInst); + } + } + + List result = new ArrayList(unique); + Collections.sort(result, new Comparator() { + @Override + public int compare(String left, String right) { + try { + return Integer.valueOf(left).compareTo(Integer.valueOf(right)); + } catch (Exception ex) { + return left.compareTo(right); + } + } + }); + return result; + } + + private String buildGroupKey(DefaultTemplate.ReportCfgItem reportCfg) { + String desc = reportCfg.getDesc() == null ? "GROUP" : reportCfg.getDesc(); + String firstDataSet = (reportCfg.getDataSetList() == null || reportCfg.getDataSetList().isEmpty()) + ? "DEFAULT" : reportCfg.getDataSetList().get(0); + return normalize(desc) + "__" + normalize(firstDataSet); + } + + private String normalize(String value) { + return value.replaceAll("[^0-9A-Za-z\\u4e00-\\u9fa5]+", "_") + .replaceAll("_+", "_") + .replaceAll("^_", "") + .replaceAll("_$", "") + .toUpperCase(Locale.ROOT); + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IndexValidationService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IndexValidationService.java new file mode 100644 index 0000000..eb10544 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/IndexValidationService.java @@ -0,0 +1,133 @@ +package com.njcn.gather.icd.mapping.domain.service; + +import com.njcn.gather.icd.mapping.application.command.IndexBindingCommand; +import com.njcn.gather.icd.mapping.application.command.IndexSelectionGroupCommand; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexAnalysis; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidate; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidateReportItem; +import com.njcn.gather.icd.mapping.domain.model.analysis.ValidationResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 索引绑定校验服务。 + * + * 校验原则: + * 1. 只校验用户明确提交的绑定项; + * 2. 不要求模板里的所有标签都必须配置; + * 3. label 必须属于当前业务分组的 templateLabels; + * 4. lnInst 必须属于当前报告对应的 ICD 候选数字。 + */ +@Service +public class IndexValidationService { + + public ValidationResult validate(IndexAnalysis analysis, List selections) { + ValidationResult result = new ValidationResult(); + + if (analysis == null || analysis.getCandidates() == null || analysis.getCandidates().isEmpty()) { + result.getProblems().add("当前 ICD 未解析出任何可配置的候选分组"); + return result; + } + + if (selections == null || selections.isEmpty()) { + for (IndexCandidate candidate : analysis.getCandidates()) { + result.getProblems().add( + "报告组【" + candidate.getGroupDesc() + "】未提交绑定关系,请根据 templateLabels 与 reports[*].availableLnInstValues 完成配置" + ); + } + return result; + } + + for (IndexSelectionGroupCommand selection : selections) { + IndexCandidate candidate = findCandidate(analysis, selection.getGroupKey(), selection.getGroupDesc()); + if (candidate == null) { + result.getProblems().add("未找到分组配置:groupKey=" + selection.getGroupKey() + ", groupDesc=" + selection.getGroupDesc()); + continue; + } + + if (selection.getBindings() == null || selection.getBindings().isEmpty()) { + result.getProblems().add("分组【" + candidate.getGroupDesc() + "】没有任何绑定关系"); + continue; + } + + for (IndexBindingCommand binding : selection.getBindings()) { + validateBinding(candidate, binding, result); + } + } + + if (result.getProblems().isEmpty()) { + result.setValid(true); + } + return result; + } + + private void validateBinding(IndexCandidate candidate, IndexBindingCommand binding, ValidationResult result) { + if (binding == null) { + result.getProblems().add("存在空的绑定项"); + return; + } + + if (isBlank(binding.getLabel())) { + result.getProblems().add("分组【" + candidate.getGroupDesc() + "】存在未填写 label 的绑定项"); + } else if (!candidate.getTemplateLabels().contains(binding.getLabel())) { + result.getProblems().add("分组【" + candidate.getGroupDesc() + "】中 label【" + binding.getLabel() + "】不在模板候选中"); + } + + IndexCandidateReportItem reportItem = findReport(candidate, binding.getReportName(), binding.getDataSetName()); + if (reportItem == null) { + result.getProblems().add( + "分组【" + candidate.getGroupDesc() + "】中未找到报告:reportName=" + binding.getReportName() + + ", dataSetName=" + binding.getDataSetName() + ); + return; + } + + if (isBlank(binding.getLnInst())) { + result.getProblems().add("报告【" + reportItem.getReportName() + "】未填写 lnInst"); + } else if (!reportItem.getAvailableLnInstValues().contains(binding.getLnInst())) { + result.getProblems().add( + "报告【" + reportItem.getReportName() + "】的 lnInst【" + binding.getLnInst() + "】不在可选数字中:" + + reportItem.getAvailableLnInstValues() + ); + } + } + + private IndexCandidate findCandidate(IndexAnalysis analysis, String groupKey, String groupDesc) { + for (IndexCandidate candidate : analysis.getCandidates()) { + if (same(candidate.getGroupKey(), groupKey)) { + return candidate; + } + if (same(candidate.getGroupDesc(), groupDesc)) { + return candidate; + } + } + return null; + } + + private IndexCandidateReportItem findReport(IndexCandidate candidate, String reportName, String dataSetName) { + if (candidate.getReports() == null) { + return null; + } + for (IndexCandidateReportItem item : candidate.getReports()) { + if (same(item.getReportName(), reportName) && (isBlank(dataSetName) || same(item.getDataSetName(), dataSetName))) { + return item; + } + } + return null; + } + + private boolean same(String left, String right) { + if (left == null && right == null) { + return true; + } + if (left == null || right == null) { + return false; + } + return left.trim().equals(right.trim()); + } + + private boolean isBlank(String value) { + return value == null || value.trim().isEmpty(); + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/MappingGenerationService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/MappingGenerationService.java new file mode 100644 index 0000000..0451a79 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/domain/service/MappingGenerationService.java @@ -0,0 +1,1015 @@ +package com.njcn.gather.icd.mapping.domain.service; + +import com.njcn.gather.icd.mapping.application.command.IndexBindingCommand; +import com.njcn.gather.icd.mapping.application.command.IndexSelectionGroupCommand; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexAnalysis; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidate; +import com.njcn.gather.icd.mapping.domain.model.analysis.IndexCandidateReportItem; +import com.njcn.gather.icd.mapping.domain.model.icd.DataSetNode; +import com.njcn.gather.icd.mapping.domain.model.icd.DoiElementNode; +import com.njcn.gather.icd.mapping.domain.model.icd.DoiNode; +import com.njcn.gather.icd.mapping.domain.model.icd.FcdaNode; +import com.njcn.gather.icd.mapping.domain.model.icd.IcdDocument; +import com.njcn.gather.icd.mapping.domain.model.icd.LnNode; +import com.njcn.gather.icd.mapping.domain.model.icd.ReportControlNode; +import com.njcn.gather.icd.mapping.domain.model.intermediate.DataSetSelectionState; +import com.njcn.gather.icd.mapping.domain.model.intermediate.ReportAndDataSetState; +import com.njcn.gather.icd.mapping.domain.model.intermediate.ReportBindingState; +import com.njcn.gather.icd.mapping.domain.model.intermediate.ReportGroupState; +import com.njcn.gather.icd.mapping.domain.model.mapping.DataSetGroupItem; +import com.njcn.gather.icd.mapping.domain.model.mapping.DoiItem; +import com.njcn.gather.icd.mapping.domain.model.mapping.InstItem; +import com.njcn.gather.icd.mapping.domain.model.mapping.MappingDocument; +import com.njcn.gather.icd.mapping.domain.model.mapping.ReportMapItem; +import com.njcn.gather.icd.mapping.domain.model.mapping.SdiItem; +import com.njcn.gather.icd.mapping.domain.model.mapping.TypeItem; +import com.njcn.gather.icd.mapping.domain.model.template.DefaultTemplate; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +/** + * 正式映射生成服务。 + * + * 说明: + * 1. 本服务不再使用“单报告 + 单字符串选择”的简化模型; + * 2. 而是按“业务分组 + 多条绑定关系”的结构生成正式 MappingDocument; + * 3. 生成时只使用用户明确提交的绑定项,不强制要求模板里的所有标签都必须配置。 + */ +@Service +public class MappingGenerationService { + + public MappingDocument generate(IcdDocument icdDocument, + DefaultTemplate template, + IndexAnalysis analysis, + List selections, + String version, + String author) { + ReportAndDataSetState state = buildState(icdDocument, template, analysis, selections); + MappingDocument document = new MappingDocument(); + // 原 C# 的 Set_Version() 默认写当天日期,而不是 "1.0" + document.setVersion(resolveVersion(version)); + document.setAuthor(author == null ? "" : author); + // 顶层字段严格按原 C# 输出规则生成。 + document.setIed(icdDocument.getIedName()); + // LD:只输出前缀,不带数字尾号。 + document.setLd(icdDocument.getLdPrefix()); + // 固定值,保持和原 C# mainFrom -> IcdCfg 一致 + document.setWaveTimeFlag("BeiJing"); + document.setDataType("1"); + document.setUnit("1"); + + // 生成 ReportMap + // 1. 先按 DefaultCfg.ReportList 分组 + // 2. reportCount 写组内总数 + // 3. 组内每个报告单独生成一条 ReportMapItem + for (ReportGroupState groupState : state.getReportGroups()) { + if (groupState.getReportItems() == null || groupState.getReportItems().isEmpty()) { + continue; + } + + // 原 C# 的 reportCount:<=1 时写 0,大于 1 才写实际数量 + int reportCount = resolveReportCount(groupState.getReportItems().size()); + + for (IndexCandidateReportItem reportItem : groupState.getReportItems()) { + ReportMapItem item = new ReportMapItem(); + item.setDesc(groupState.getGroupDesc()); + item.setReportCount(reportCount); + + // 单个报告自己的 rptID / name + item.setRptId(resolveSingleRptId(icdDocument, reportItem.getReportName())); + item.setName(reportItem.getReportName()); + + // buffered 按原 C# 转成 BR / RP + item.setBuffered(resolveBufferedCode(icdDocument, reportItem.getReportName())); + + // inst / Select / TrgOps 直接来自当前分组匹配到的 DefaultCfg.ReportList 项 + item.setInst(resolveReportInst(groupState.getReportInst())); + item.setSelect(groupState.getSelect()); + item.setTrgOps(resolveTrgOps(groupState.getTrgOps())); + + // 原 C# 当前固定写 0 + item.setFlickerFlag("0"); + + document.getReportMap().add(item); + } + } + + // 2. 生成 DataSetList + Map dataSetGroupMap = new LinkedHashMap(); + for (DataSetSelectionState selectionState : state.getDataSetSelections()) { + if (selectionState.getLnNodes() == null || selectionState.getLnNodes().isEmpty()) { + continue; + } + + // 一个绑定现在可能命中多个 LN,需要逐个展开 + for (LnNode lnNode : selectionState.getLnNodes()) { + if (lnNode == null) { + continue; + } + + DefaultTemplate.LnClassCfgItem lnClassCfg = findLnClassCfg(template, lnNode.getLnClass()); + if (lnClassCfg == null) { + continue; + } + + String groupKey = lnClassCfg.getDesc() + "__" + lnNode.getLnClass(); + DataSetGroupItem groupItem = dataSetGroupMap.get(groupKey); + if (groupItem == null) { + groupItem = new DataSetGroupItem(); + groupItem.setDesc(lnClassCfg.getDesc()); + groupItem.setLnClass(lnNode.getLnClass()); + dataSetGroupMap.put(groupKey, groupItem); + } + + InstItem instItem = findOrCreateInst(groupItem, selectionState.getLnInst(), selectionState.getLabel()); + + // 关键:把当前正在处理的 lnNode 传进去,而不是只用一个旧的 lnNode + buildDoiItems(instItem, selectionState, lnNode, icdDocument, template); + } + } + + document.getDataSetList().addAll(dataSetGroupMap.values()); + return document; + } + + private ReportAndDataSetState buildState(IcdDocument icdDocument, + DefaultTemplate template, + IndexAnalysis analysis, + List selections) { + ReportAndDataSetState state = new ReportAndDataSetState(); + state.setIedName(icdDocument.getIedName()); + state.setLdInst(icdDocument.getLdInst()); + + if (selections == null) { + return state; + } + + for (IndexSelectionGroupCommand selectionGroup : selections) { + IndexCandidate candidate = findCandidate(analysis, selectionGroup.getGroupKey(), selectionGroup.getGroupDesc()); + if (candidate == null) { + continue; + } + + ReportGroupState groupState = new ReportGroupState(); + groupState.setGroupKey(candidate.getGroupKey()); + groupState.setGroupDesc(candidate.getGroupDesc()); + groupState.setReportCount(candidate.getReportCount()); + + // 关键修正: + // 不再在这里重新查 DefaultCfg.ReportList, + // 直接使用 IndexAnalysisService 已经匹配好的配置项 + groupState.setReportInst(candidate.getReportInst()); + groupState.setSelect(candidate.getSelect()); + groupState.setTrgOps(candidate.getTrgOps()); + + groupState.getReportItems().addAll(candidate.getReports()); + + if (selectionGroup.getBindings() != null) { + for (IndexBindingCommand command : selectionGroup.getBindings()) { + ReportBindingState bindingState = new ReportBindingState(); + bindingState.setGroupKey(candidate.getGroupKey()); + bindingState.setGroupDesc(candidate.getGroupDesc()); + bindingState.setReportName(command.getReportName()); + bindingState.setDataSetName(command.getDataSetName()); + bindingState.setLabel(command.getLabel()); + bindingState.setLnInst(command.getLnInst()); + groupState.getBindings().add(bindingState); + + DataSetSelectionState dataSetSelectionState = new DataSetSelectionState(); + dataSetSelectionState.setGroupKey(candidate.getGroupKey()); + dataSetSelectionState.setGroupDesc(candidate.getGroupDesc()); + dataSetSelectionState.setReportName(command.getReportName()); + dataSetSelectionState.setDataSetName(command.getDataSetName()); + dataSetSelectionState.setLabel(command.getLabel()); + dataSetSelectionState.setLnInst(command.getLnInst()); + // 旧版本只找一个 LN,容易丢掉整组数据。 + // 新版本改成收集所有匹配 LN。 + dataSetSelectionState.getLnNodes().addAll(findMatchedLnNodes(icdDocument, command)); + state.getDataSetSelections().add(dataSetSelectionState); + } + } + + state.getReportGroups().add(groupState); + } + + return state; + } + + /** + * 查找当前绑定命中的所有 LN。 + * + * 旧逻辑只返回一个 LN,会导致: + * - MSQI 整组缺失 + * - MHAI 只生成一半 + * + * 新逻辑: + * 1. 先从当前 DataSet 的 FCDA 中,找出与 lnInst 相同的所有 lnClass; + * 2. 再回到 ICD 逻辑节点列表中,收集这些 lnClass + lnInst 对应的 LN; + * 3. 如果仍然找不到,再退化为按 lnInst 收集全部 LN。 + */ + private List findMatchedLnNodes(IcdDocument icdDocument, IndexBindingCommand command) { + List result = new ArrayList(); + if (icdDocument == null || command == null) { + return result; + } + + Set lnClasses = new LinkedHashSet(); + + // 1. 优先通过当前 DataSet 的 FCDA 找关联 lnClass + DataSetNode dataSetNode = icdDocument.getDataSets().get(command.getDataSetName()); + if (dataSetNode != null && dataSetNode.getFcdas() != null) { + for (FcdaNode fcda : dataSetNode.getFcdas()) { + if (fcda == null) { + continue; + } + if (equalsTrim(fcda.getLnInst(), command.getLnInst()) && fcda.getLnClass() != null) { + lnClasses.add(fcda.getLnClass()); + } + } + } + + // 2. 用 lnClass + lnInst 收集所有 LN + if (!lnClasses.isEmpty()) { + for (LnNode node : icdDocument.getLogicalNodes()) { + if (node == null) { + continue; + } + if (equalsTrim(node.getLnInst(), command.getLnInst()) && lnClasses.contains(node.getLnClass())) { + result.add(node); + } + } + } + + // 3. 如果还没找到,则退化成按 lnInst 收集全部 LN + if (result.isEmpty()) { + for (LnNode node : icdDocument.getLogicalNodes()) { + if (node == null) { + continue; + } + if (equalsTrim(node.getLnInst(), command.getLnInst())) { + result.add(node); + } + } + } + + return result; + } + + private InstItem findOrCreateInst(DataSetGroupItem groupItem, String inst, String desc) { + for (InstItem item : groupItem.getInstList()) { + if (equalsTrim(item.getInst(), inst)) { + if (item.getDesc() == null || item.getDesc().trim().isEmpty()) { + item.setDesc(desc); + } + return item; + } + } + InstItem item = new InstItem(); + item.setInst(inst); + item.setDesc(desc); + groupItem.getInstList().add(item); + return item; + } + + /** + * 构建当前 inst 下的 doiList。 + * + * 关键修正: + * 1. 不再分“先跑一遍 nameList,再跑一遍 queueList”; + * 2. 改成按单个 DOI 逐个判断:if(nameList) else if(queueList); + * 3. 这和 C# 原版一致,避免 queueList 误生成多余项。 + */ + private void buildDoiItems(InstItem instItem, + DataSetSelectionState selectionState, + LnNode lnNode, + IcdDocument icdDocument, + DefaultTemplate template) { + if (lnNode == null) { + return; + } + + List dataObjectCfgItems = + findDataObjectCfgItems(template, selectionState.getLabel()); + if (dataObjectCfgItems.isEmpty()) { + return; + } + + for (DefaultTemplate.DataObjectCfgItem dataObjectCfg : dataObjectCfgItems) { + if (dataObjectCfg.getObjectList() == null) { + continue; + } + + for (DefaultTemplate.ObjectCfgItem objectCfg : dataObjectCfg.getObjectList()) { + List matches = collectMatchedDoiNodes(lnNode, objectCfg); + for (DoiMatch match : matches) { + addDoiItem(instItem, selectionState, lnNode, icdDocument, template, objectCfg, match.getDoiNode(), match.isQueueMode()); + } + } + } + } + + /** + * 新增一个 DOI 映射项。 + * + * queueMode = true 表示当前 DOI 是按 queueList 命中的, + * 对应 C# 里的“基波指标/队列指标”那条分支。 + */ + private void addDoiItem(InstItem instItem, + DataSetSelectionState selectionState, + LnNode lnNode, + IcdDocument icdDocument, + DefaultTemplate template, + DefaultTemplate.ObjectCfgItem objectCfg, + DoiNode doiNode, + boolean queueMode) { + if (doiNode == null) { + return; + } + + int icdCount = resolveIcdCount(icdDocument, selectionState, doiNode); + + // C# 原版 queue 分支有这个关键判断: + // if (doi.tNUM == objectCfgItem.queuecount) break; + // 这会让 “基波有功/无功/视在功率” 这类项不生成。 + if (shouldSkipQueueItem(queueMode, icdCount, objectCfg)) { + return; + } + + if (containsDoi(instItem, lnNode.getLnClass(), selectionState.getLnInst(), doiNode.getName(), objectCfg.getDesc())) { + return; + } + + DoiItem doiItem = new DoiItem(); + doiItem.setName(doiNode.getName()); + doiItem.setDesc(objectCfg.getDesc()); + + // 原样保留 baseflag + doiItem.setBaseflag(objectCfg.getBaseflag()); + + // 只有 queueMode 时,basecount 才按 queuecount 输出 + doiItem.setBasecount(queueMode && objectCfg.getQueuecount() > 0 + ? objectCfg.getQueuecount() + : objectCfg.getBasecount()); + + doiItem.setIcdcout(icdCount); + + int[] range = resolveRange(icdCount, objectCfg, queueMode); + doiItem.setStart(range[0]); + doiItem.setEnd(range[1]); + + doiItem.setUnit(resolveUnit(doiNode, template)); + doiItem.setCoefficient(resolveCoefficient(doiNode, template)); + doiItem.getSdiList().addAll(buildSdiItems(doiNode, template)); + + instItem.getDoiList().add(doiItem); + } + + private boolean shouldSkipQueueItem(boolean queueMode, int icdCount, DefaultTemplate.ObjectCfgItem objectCfg) { + if (!queueMode || objectCfg == null) { + return false; + } + + // queueList 本来就是给 baseflag=2 这类对象准备的 + if (objectCfg.getBaseflag() != 2) { + return false; + } + + // C#:if (doi.tNUM == objectCfgItem.queuecount) break; + return objectCfg.getQueuecount() > 0 && icdCount == objectCfg.getQueuecount(); + } + + /** + * 判断 DOI 是否已经存在。 + * + * 旧逻辑只按 name + desc 去重,过于激进, + * 容易把本应保留的项压掉。 + * + * 新逻辑至少把: + * - lnClass + * - lnInst + * - doiName + * - desc + * 一起考虑。 + * + * 注意: + * 当前 InstItem 已经按 group(lnClass) + inst 组织, + * 所以这里仍然是保守去重,不会过度复杂。 + */ + private boolean containsDoi(InstItem instItem, + String lnClass, + String lnInst, + String doiName, + String desc) { + for (DoiItem item : instItem.getDoiList()) { + boolean sameName = equalsTrim(item.getName(), doiName); + boolean sameDesc = equalsTrim(item.getDesc(), desc); + if (sameName && sameDesc) { + return true; + } + } + return false; + } + + private List findDataObjectCfgItems(DefaultTemplate template, String label) { + List result = new ArrayList(); + if (template == null || template.getDataObjectsList() == null) { + return result; + } + for (DefaultTemplate.DataObjectCfgItem item : template.getDataObjectsList()) { + if (item.getLnInstList() != null && item.getLnInstList().contains(label)) { + result.add(item); + } + } + return result; + } + + /** + * 单个 DOI 的匹配结果。 + * + * queueMode=false:命中 nameList + * queueMode=true :命中 queueList + */ + private static final class DoiMatch { + private final DoiNode doiNode; + private final boolean queueMode; + + private DoiMatch(DoiNode doiNode, boolean queueMode) { + this.doiNode = doiNode; + this.queueMode = queueMode; + } + + public DoiNode getDoiNode() { + return doiNode; + } + + public boolean isQueueMode() { + return queueMode; + } + } + + /** + * 按 objectCfg 级别实现 “nameList 优先,找不到才退回 queueList”。 + * + * 关键点: + * 1. 先扫描整个 lnNode,收集所有命中 nameList 的 DOI; + * 2. 只要 nameList 命中了任意一个,就直接返回这些 nameList 命中项; + * 3. 只有当 nameList 一个都没命中时,才允许 queueList 命中。 + * + * 这样像: + * - nameList = [HFundPhV, FundPhV] + * - queueList = [HPhV] + * + * 当 ICD 里已经存在 HFundPhV / FundPhV 时, + * 就不会再让 HPhV 派生出“相电压基波有效值”。 + */ + private List collectMatchedDoiNodes(LnNode lnNode, DefaultTemplate.ObjectCfgItem objectCfg) { + List nameMatches = new ArrayList(); + List queueMatches = new ArrayList(); + + if (lnNode == null || lnNode.getDoiList() == null || objectCfg == null) { + return nameMatches; + } + + for (DoiNode doiNode : lnNode.getDoiList()) { + if (doiNode == null || doiNode.getName() == null) { + continue; + } + + String doiName = doiNode.getName(); + + if (objectCfg.getNameList() != null && objectCfg.getNameList().contains(doiName)) { + nameMatches.add(new DoiMatch(doiNode, false)); + continue; + } + + if (objectCfg.getQueueList() != null && objectCfg.getQueueList().contains(doiName)) { + queueMatches.add(new DoiMatch(doiNode, true)); + } + } + + // 只要 nameList 命中了任何 DOI,就彻底禁止 queueList 再参与 + if (!nameMatches.isEmpty()) { + return nameMatches; + } + + return queueMatches; + } + + /** + * 解析当前 DOI 在 ICD 中真实存在的序列数量。 + * + * 规则贴近 C#: + * 1. 优先使用 SclGeneratedModelReader 已经按模板 count 回填好的 doi.sequenceCount; + * 2. 再用当前 DataSet 的 FCDA / ix 做兜底; + * 3. 这样 icdcout 才能和原版保持一致。 + */ + private int resolveIcdCount(IcdDocument icdDocument, DataSetSelectionState selectionState, DoiNode doiNode) { + int max = doiNode == null ? 0 : doiNode.getSequenceCount(); + + if (doiNode != null && doiNode.getIx() != null && doiNode.getIx() > max) { + max = doiNode.getIx().intValue(); + } + + if (icdDocument == null || icdDocument.getDataSets() == null || selectionState == null || doiNode == null) { + return max; + } + + DataSetNode dataSetNode = icdDocument.getDataSets().get(selectionState.getDataSetName()); + if (dataSetNode == null || dataSetNode.getFcdas() == null) { + return max; + } + + for (FcdaNode fcda : dataSetNode.getFcdas()) { + if (fcda == null) { + continue; + } + + boolean sameLnClass = equalsTrim(fcda.getLnClass(), doiNode.getLnClass()); + boolean sameLnInst = equalsTrim(fcda.getLnInst(), selectionState.getLnInst()); + boolean sameDoName = equalsTrim(fcda.getDoName(), doiNode.getName()); + + if (sameLnClass && sameLnInst && sameDoName) { + if (fcda.getSequenceCount() > max) { + max = fcda.getSequenceCount(); + } + if (fcda.getIx() != null && fcda.getIx() > max) { + max = fcda.getIx().intValue(); + } + } + } + + return max; + } + + /** + * 计算 DOI 的 start / end。 + * + * 严格按 C# 规则: + * + * 普通序列项: + * - start 默认 0 + * - 如果 basecount < icdCount 且 basecount != 0,则 start = 1 + * - 如果 icdCount > 0,则 end = icdCount - 1 + * + * queueList 命中的基波项: + * - start = 0 + * - end = 0 + * + * 注意: + * 这里不是 1 基区间,也不是 end = icdCount。 + */ + private int[] resolveRange(int icdCount, DefaultTemplate.ObjectCfgItem objectCfg, boolean queueMode) { + // queueList 命中的基波项,C# 原版就是固定 0~0 + if (queueMode) { + return new int[]{0, 0}; + } + + int start = 0; + int end = 0; + + if (objectCfg != null) { + if (objectCfg.getBasecount() != 0 && objectCfg.getBasecount() < icdCount) { + start = 1; + } + } + + if (icdCount > 0) { + end = icdCount - 1; + } + + return new int[]{start, end}; + } + + /** + * 解析 DOI 的单位。 + * + * 修正说明: + * 1. 不再扫描整棵 DOI 子树的所有叶子值; + * 2. 只读取 DAI -> Val 的配置值; + * 3. 找不到匹配单位时,默认返回 "other"; + * 4. 这样更接近原 C# 的 ReadtUnNaming 逻辑。 + */ + private String resolveUnit(DoiNode doiNode, DefaultTemplate template) { + List daiValues = new ArrayList(); + collectDaiValues(doiNode.getChildren(), daiValues); + + for (String value : daiValues) { + DefaultTemplate.UnitCfgItem unitCfg = findUnitCfg(template, value); + if (unitCfg != null && unitCfg.getDesc() != null && !unitCfg.getDesc().trim().isEmpty()) { + return unitCfg.getDesc().trim(); + } + } + + // 原映射里找不到单位时,统一归为 other + return "other"; + } + + /** + * 递归收集 DOI 子树中所有 DAI 节点上的 Val。 + * + * 这里只读取 DAI 的 values,不把 SDI 名称、其他叶子值混进来。 + */ + private void collectDaiValues(List nodes, List result) { + if (nodes == null) { + return; + } + + for (DoiElementNode node : nodes) { + if (node == null) { + continue; + } + + if ("DAI".equalsIgnoreCase(node.getKind()) && node.getValues() != null) { + for (String value : node.getValues()) { + if (value != null && !value.trim().isEmpty()) { + result.add(value.trim()); + } + } + } + + collectDaiValues(node.getChildren(), result); + } + } + + private float resolveCoefficient(DoiNode doiNode, DefaultTemplate template) { + Set values = collectAllLeafValues(doiNode.getChildren()); + for (String value : values) { + DefaultTemplate.MultiplierCfgItem multiplierCfg = findMultiplierCfg(template, value); + if (multiplierCfg != null) { + return multiplierCfg.getMultiplier(); + } + } + return 1.0f; + } + + /** + * 构建当前 DOI 下的 sdiList。 + * + * 修正说明: + * 1. 原 C# 中,如果命中了类型节点(如 mag/ang),但前面没有命中相别节点, + * 会自动创建一个“无相别”的 sdiItem: + * - name = null + * - desc = 无相别 + * 2. 当前 Java 版之前没有这层兜底,导致无相别内容直接变成空数组。 + * 3. 这里改成按“相别节点 / 类型节点”双层递归处理,尽量贴近原 C# 的 ReadtUnNaming 逻辑。 + */ + private List buildSdiItems(DoiNode doiNode, DefaultTemplate template) { + List result = new ArrayList(); + if (doiNode == null || doiNode.getChildren() == null) { + return result; + } + + for (DoiElementNode child : doiNode.getChildren()) { + // currentSdi 表示当前递归上下文中已命中的相别节点 + collectSdiItems(result, child, template, null); + } + + return result; + } + + /** + * 递归收集 DOI 下的相别 / 类型信息。 + * + * @param result 当前 DOI 的 sdiList 结果集 + * @param node 当前递归节点 + * @param template DefaultCfg 模板 + * @param currentSdi 当前已经命中的相别节点;如果为 null,说明当前路径还没有相别 + * + * 逻辑说明: + * 1. 如果当前 SDI 命中 PhaseList,则创建一个新的相别 sdiItem; + * 2. 如果当前 SDI 命中 TypeList: + * - 如果已经有 currentSdi,则把类型挂到这个相别下; + * - 如果没有 currentSdi,则自动创建“无相别” sdiItem,再挂类型; + * 3. 只有 type 节点才会创建 typeItem,且只保留 mag/ang。 + */ + private void collectSdiItems(List result, + DoiElementNode node, + DefaultTemplate template, + SdiItem currentSdi) { + if (node == null) { + return; + } + + if ("SDI".equalsIgnoreCase(node.getKind())) { + // 1. 命中相别节点:例如 phsA / phsB / phsC / phsAB ... + if (isPhaseNode(template, node.getName())) { + SdiItem phaseItem = new SdiItem(); + phaseItem.setName(node.getName()); + phaseItem.setDesc(resolvePhaseDesc(template, node.getName())); + result.add(phaseItem); + + if (node.getChildren() != null) { + for (DoiElementNode child : node.getChildren()) { + collectSdiItems(result, child, template, phaseItem); + } + } + return; + } + + // 2. 命中类型节点:例如 mag / ang + if (isTypeNode(template, node.getName())) { + // 如果当前没有相别上下文,就按原 C# 规则自动创建“无相别” + SdiItem target = currentSdi; + if (target == null) { + target = findOrCreateNoPhaseSdiItem(result); + } + + addTypeIfAbsent(target, node.getName(), template); + + if (node.getChildren() != null) { + for (DoiElementNode child : node.getChildren()) { + collectSdiItems(result, child, template, target); + } + } + return; + } + } + + // 3. 其他节点继续往下递归,继承当前上下文 + if (node.getChildren() != null) { + for (DoiElementNode child : node.getChildren()) { + collectSdiItems(result, child, template, currentSdi); + } + } + } + + /** + * 查找或创建“无相别” sdiItem。 + * + * 原 C# 的行为: + * 当命中了类型节点,但前面没有任何相别节点时, + * 会自动创建: + * - name = null + * - desc = 无相别 + * + * 这样像 Hz / TotW / TotPF 这类无相别 DOI,仍然能挂 mag$f / ang$f。 + */ + private SdiItem findOrCreateNoPhaseSdiItem(List result) { + for (SdiItem item : result) { + if (item.getName() == null && "无相别".equals(item.getDesc())) { + return item; + } + } + + SdiItem noPhaseItem = new SdiItem(); + noPhaseItem.setName(null); + noPhaseItem.setDesc("无相别"); + result.add(noPhaseItem); + return noPhaseItem; + } + + /** + * 向当前 sdiItem 下添加类型项。 + * + * 规则: + * 1. 只保留 mag / ang; + * 2. 输出格式固定为 mag$f / ang$f; + * 3. 避免重复加入同名类型。 + */ + private void addTypeIfAbsent(SdiItem sdiItem, String typeName, DefaultTemplate template) { + if (sdiItem == null || typeName == null) { + return; + } + + // 只保留原映射里真正需要的类型 + if (!"mag".equalsIgnoreCase(typeName) && !"ang".equalsIgnoreCase(typeName)) { + return; + } + + String finalName = typeName + "$f"; + + for (TypeItem item : sdiItem.getTypeList()) { + if (finalName.equals(item.getName())) { + return; + } + } + + TypeItem typeItem = new TypeItem(); + typeItem.setName(finalName); + typeItem.setDesc(resolveTypeDesc(template, typeName)); + sdiItem.getTypeList().add(typeItem); + } + + /** + * 判断当前 SDI 是否属于“相别类”节点。 + * + * 例如: + * phsA / phsB / phsC / phsAB / phsBC / phsCA + */ + private boolean isPhaseNode(DefaultTemplate template, String name) { + if (template == null || template.getPhaseList() == null || name == null) { + return false; + } + + for (DefaultTemplate.PhaseCfgItem item : template.getPhaseList()) { + if (item.getNameList() != null && item.getNameList().contains(name)) { + return true; + } + } + + return false; + } + + /** + * 判断当前 SDI 是否属于“类型类”节点。 + * + * 当前只关心 mag / ang。 + */ + private boolean isTypeNode(DefaultTemplate template, String name) { + if (template == null || template.getTypeList() == null || name == null) { + return false; + } + + for (DefaultTemplate.TypeCfgItem item : template.getTypeList()) { + if (item.getNameList() != null && item.getNameList().contains(name)) { + return true; + } + } + + return false; + } + + private DefaultTemplate.LnClassCfgItem findLnClassCfg(DefaultTemplate template, String lnClass) { + if (template == null || template.getLnClassList() == null) { + return null; + } + for (DefaultTemplate.LnClassCfgItem item : template.getLnClassList()) { + if (item.getNameList() != null && item.getNameList().contains(lnClass)) { + return item; + } + } + return null; + } + + + private IndexCandidate findCandidate(IndexAnalysis analysis, String groupKey, String groupDesc) { + if (analysis == null || analysis.getCandidates() == null) { + return null; + } + for (IndexCandidate candidate : analysis.getCandidates()) { + if (equalsTrim(candidate.getGroupKey(), groupKey) || equalsTrim(candidate.getGroupDesc(), groupDesc)) { + return candidate; + } + } + return null; + } + + private Set collectAllLeafValues(List nodes) { + Set result = new LinkedHashSet(); + if (nodes == null) { + return result; + } + for (DoiElementNode node : nodes) { + if (node.getValues() != null) { + for (String value : node.getValues()) { + if (value != null && !value.trim().isEmpty()) { + result.add(value.trim()); + } + } + } + result.addAll(collectAllLeafValues(node.getChildren())); + } + return result; + } + + private DefaultTemplate.UnitCfgItem findUnitCfg(DefaultTemplate template, String value) { + if (template == null || template.getUnitList() == null) { + return null; + } + for (DefaultTemplate.UnitCfgItem item : template.getUnitList()) { + if (item.getNameList() != null && item.getNameList().contains(value)) { + return item; + } + } + return null; + } + + private DefaultTemplate.MultiplierCfgItem findMultiplierCfg(DefaultTemplate template, String value) { + if (template == null || template.getMultiplierList() == null) { + return null; + } + for (DefaultTemplate.MultiplierCfgItem item : template.getMultiplierList()) { + if (item.getNameList() != null && item.getNameList().contains(value)) { + return item; + } + } + return null; + } + + private String resolvePhaseDesc(DefaultTemplate template, String value) { + if (template == null || template.getPhaseList() == null) { + return value; + } + for (DefaultTemplate.PhaseCfgItem item : template.getPhaseList()) { + if (item.getNameList() != null && item.getNameList().contains(value)) { + return item.getDesc(); + } + } + return value; + } + + private String resolveTypeDesc(DefaultTemplate template, String value) { + if (template == null || template.getTypeList() == null) { + return value; + } + for (DefaultTemplate.TypeCfgItem item : template.getTypeList()) { + if (item.getNameList() != null && item.getNameList().contains(value)) { + return item.getDesc(); + } + } + return value; + } + + + private boolean equalsTrim(String left, String right) { + if (left == null && right == null) { + return true; + } + if (left == null || right == null) { + return false; + } + return left.trim().equals(right.trim()); + } + /** + * 解析单个报告的 rptID。 + * + * 原 C# 是直接取 tReportControl.rptID, + * 所以这里优先从 ICD 解析后的报告控制块对象里读。 + */ + private String resolveSingleRptId(IcdDocument icdDocument, String reportName) { + if (icdDocument == null || icdDocument.getReportControls() == null || reportName == null) { + return null; + } + + for (ReportControlNode reportControl : icdDocument.getReportControls()) { + if (reportName.equals(reportControl.getName())) { + return reportControl.getRptId(); + } + } + return null; + } + + /** + * 将布尔 buffered 转成原 C# 风格的 BR / RP。 + * + * 原 C#: + * - true -> BR + * - false -> RP + * - 默认 -> RP + */ + private String resolveBufferedCode(IcdDocument icdDocument, String reportName) { + if (icdDocument == null || icdDocument.getReportControls() == null || reportName == null) { + return "RP"; + } + + for (ReportControlNode reportControl : icdDocument.getReportControls()) { + if (reportName.equals(reportControl.getName())) { + Boolean buffered = reportControl.getBuffered(); + if (Boolean.TRUE.equals(buffered)) { + return "BR"; + } + return "RP"; + } + } + return "RP"; + } + + /** + * inst 按原 C# 规则,只允许 01~04,其余默认 01。 + */ + private String resolveReportInst(String inst) { + if ("01".equals(inst) || "02".equals(inst) || "03".equals(inst) || "04".equals(inst)) { + return inst; + } + return "01"; + } + + /** + * TrgOps 按原 C# 规则,只接受 40 / 96,其余默认 96。 + */ + private String resolveTrgOps(String trgOps) { + if ("40".equals(trgOps) || "96".equals(trgOps)) { + return trgOps; + } + return "96"; + } + + private String resolveVersion(String version) { + if (version != null && !version.trim().isEmpty()) { + return version.trim(); + } + return LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE); + } + + private int resolveReportCount(int size) { + return size <= 1 ? 0 : size; + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/enums/GenerateStatus.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/enums/GenerateStatus.java new file mode 100644 index 0000000..8138b64 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/enums/GenerateStatus.java @@ -0,0 +1,13 @@ +package com.njcn.gather.icd.mapping.enums; + +/** + * 接口生成状态。 + */ +public enum GenerateStatus { + /** 生成成功。 */ + SUCCESS, + /** 需要前端重新选择索引。 */ + NEED_INDEX_SELECTION, + /** 生成失败。 */ + FAILED +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclGeneratedModelReader.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclGeneratedModelReader.java new file mode 100644 index 0000000..0bb5b08 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclGeneratedModelReader.java @@ -0,0 +1,522 @@ +package com.njcn.gather.icd.mapping.infrastructure.parser; + +import com.njcn.gather.icd.mapping.domain.model.icd.*; +import com.njcn.gather.icd.mapping.infrastructure.parser.generated.*; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +/** + * JAXB generated 模型读取器。 + * generated 模型读取器。遍历 SCL/IED/LDevice/LN0/LN/ReportControl/DataSet/DOI 树并转换。 + * + * 说明: + * 1. 这里只负责“把 generated 模型读取出来”。 + * 2. 不直接做接口编排,也不做 JSON 序列化。 + */ +public class SclGeneratedModelReader { + + public IcdDocument read(SCL scl, String fileName) { + IcdDocument document = new IcdDocument(); + document.setFileName(fileName); + + TIED targetIed = null; + TLDevice targetDevice = null; + + if (scl.getIED() != null) { + for (TIED ied : scl.getIED()) { + if (ied.getAccessPoint() == null) { + continue; + } + for (TAccessPoint accessPoint : ied.getAccessPoint()) { + TServer server = accessPoint.getServer(); + if (server == null || server.getLDevice() == null) { + continue; + } + for (TLDevice lDevice : server.getLDevice()) { + String inst = lDevice.getInst(); + if (inst == null || inst.trim().isEmpty()) { + continue; + } + if ("LD0".equals(inst) || "PQLD0".equals(inst)) { + continue; + } + targetIed = ied; + targetDevice = lDevice; + break; + } + if (targetDevice != null) { + break; + } + } + if (targetDevice != null) { + break; + } + } + } + + if (targetIed == null || targetDevice == null) { + throw new IllegalArgumentException("未找到可解析的 IED/LDevice 节点"); + } + + IedNode iedNode = new IedNode(); + iedNode.setName(targetIed.getName()); + document.setPrimaryIed(iedNode); + document.setIedName(targetIed.getName()); + document.setLdInst(targetDevice.getInst()); + document.setLdPrefix(extractLdPrefix(targetDevice.getInst())); + + LogicalDeviceNode logicalDeviceNode = new LogicalDeviceNode(); + logicalDeviceNode.setInst(targetDevice.getInst()); + logicalDeviceNode.setLdName(targetDevice.getLdName()); + document.setLogicalDevice(logicalDeviceNode); + + LN0 ln0 = targetDevice.getLN0(); + if (ln0 != null) { + readReportAndDataSetFromAnyLn(ln0, document); + document.getLogicalNodes().add(readLogicalNode(ln0, true)); + } + if (targetDevice.getLN() != null) { + for (TLN ln : targetDevice.getLN()) { + document.getLogicalNodes().add(readLogicalNode(ln, false)); + } + } + // 关键修正: + // C# 原版的 icdcout 优先来自 DataTypeTemplates -> LNodeType -> DO -> DOType -> DA.count, + // 不是靠 DataSet/FCDA 重复数来反推。 + // 这里改成:先按模板 count 回填 DOI.sequenceCount,找不到再退回 FCDA。 + syncDoiSequenceCount(scl, document); + + return document; + } + + private void readReportAndDataSetFromAnyLn(TAnyLN anyLn, IcdDocument document) { + List allFcdas = new ArrayList(); + if (anyLn.getDataSet() != null) { + for (TDataSet dataSet : anyLn.getDataSet()) { + DataSetNode dataSetNode = new DataSetNode(); + dataSetNode.setName(dataSet.getName()); + if (dataSet.getFCDA() != null) { + for (TFCDA fcda : dataSet.getFCDA()) { + FcdaNode node = toFcdaNode(fcda); + dataSetNode.getFcdas().add(node); + allFcdas.add(node); + } + } + document.getDataSets().put(dataSetNode.getName(), dataSetNode); + } + } + for (DataSetNode dataSet : document.getDataSets().values()) { + for (FcdaNode fcda : dataSet.getFcdas()) { + fcda.setSequenceCount(SclTraversalSupport.calculateSequenceCount(allFcdas, fcda)); + } + } + + if (anyLn.getReportControl() != null) { + for (TReportControl reportControl : anyLn.getReportControl()) { + ReportControlNode report = new ReportControlNode(); + report.setName(reportControl.getName()); + report.setRptId(reportControl.getRptID()); + report.setBuffered(reportControl.isBuffered()); + report.setDataSetName(reportControl.getDatSet()); + report.setConfRev(String.valueOf(reportControl.getConfRev())); + report.setTrgOps(readTrgOps(reportControl)); + document.getReportControls().add(report); + } + } + } + + private String readTrgOps(TReportControl reportControl) { + if (reportControl.getTrgOps() == null) { + return null; + } + boolean dchg = Boolean.TRUE.equals(reportControl.getTrgOps().isDchg()); + boolean qchg = Boolean.TRUE.equals(reportControl.getTrgOps().isQchg()); + boolean period = Boolean.TRUE.equals(reportControl.getTrgOps().isPeriod()); + if (period) { + return "40"; + } + if (dchg || qchg) { + return "96"; + } + return null; + } + + /** + * 读取逻辑节点。 + * + * 注意: + * 当前这套 JAXB 生成类中,TAnyLN 只提供了通用能力, + * prefix / lnClass / inst 这些属性实际定义在子类 TLN / TLN0 上, + * 所以这里不能直接对 TAnyLN 调用 getPrefix()/getLnClass()/getInst()。 + */ + private LnNode readLogicalNode(TAnyLN anyLn, boolean isLn0) { + LnNode node = new LnNode(); + node.setLn0(isLn0); + + // lnType 在 TAnyLN 上是存在的,可以直接读取 + node.setLnType(anyLn.getLnType()); + + // prefix / lnClass / inst 需要根据具体子类读取 + node.setPrefix(resolveLnPrefix(anyLn)); + node.setLnClass(resolveLnClass(anyLn)); + node.setLnInst(resolveLnInst(anyLn)); + + // DOI 是定义在 TAnyLN 上的,可以直接读取 + if (anyLn.getDOI() != null) { + for (TDOI doi : anyLn.getDOI()) { + DoiNode doiNode = new DoiNode(); + doiNode.setName(doi.getName()); + doiNode.setIx(doi.getIx()); + doiNode.setLnClass(node.getLnClass()); + doiNode.setLnInst(node.getLnInst()); + + if (doi.getSDIOrDAI() != null) { + for (TUnNaming child : doi.getSDIOrDAI()) { + DoiElementNode childNode = readUnNamingNode(child); + if (childNode != null) { + doiNode.getChildren().add(childNode); + } + } + } + + node.getDoiList().add(doiNode); + } + } + + return node; + } + /** + * 解析逻辑节点 prefix。 + * + * TLN 有 prefix; + * TLN0 按这套生成类没有单独 prefix 字段,返回空字符串即可。 + */ + private String resolveLnPrefix(TAnyLN anyLn) { + if (anyLn instanceof TLN) { + return ((TLN) anyLn).getPrefix(); + } + return ""; + } + + /** + * 解析逻辑节点 lnClass。 + * + * 当前生成类里: + * - TLN.getLnClass() 返回 List + * - TLN0.getLnClass() 返回 List + */ + private String resolveLnClass(TAnyLN anyLn) { + if (anyLn instanceof TLN) { + return first(((TLN) anyLn).getLnClass()); + } + if (anyLn instanceof TLN0) { + return first(((TLN0) anyLn).getLnClass()); + } + return null; + } + + /** + * 解析逻辑节点 inst。 + * + * 当前生成类里: + * - TLN.getInst() 存在 + * - TLN0.getInst() 也存在 + */ + private String resolveLnInst(TAnyLN anyLn) { + if (anyLn instanceof TLN) { + return ((TLN) anyLn).getInst(); + } + if (anyLn instanceof TLN0) { + return ((TLN0) anyLn).getInst(); + } + return null; + } + + private DoiElementNode readUnNamingNode(TUnNaming source) { + if (source == null) { + return null; + } + if (source instanceof TSDI) { + TSDI sdi = (TSDI) source; + DoiElementNode node = new DoiElementNode(); + node.setKind("SDI"); + node.setName(sdi.getName()); + node.setIx(sdi.getIx()); + if (sdi.getSDIOrDAI() != null) { + for (TUnNaming child : sdi.getSDIOrDAI()) { + DoiElementNode childNode = readUnNamingNode(child); + if (childNode != null) { + node.getChildren().add(childNode); + } + } + } + return node; + } + if (source instanceof TDAI) { + TDAI dai = (TDAI) source; + DoiElementNode node = new DoiElementNode(); + node.setKind("DAI"); + node.setName(dai.getName()); + node.setIx(dai.getIx()); + if (dai.getVal() != null) { + for (TVal val : dai.getVal()) { + if (val.getValue() != null) { + node.getValues().add(val.getValue()); + } + } + } + return node; + } + return null; + } + + private FcdaNode toFcdaNode(TFCDA fcda) { + FcdaNode node = new FcdaNode(); + node.setLdInst(fcda.getLdInst()); + node.setPrefix(fcda.getPrefix()); + node.setLnClass(first(fcda.getLnClass())); + node.setLnInst(fcda.getLnInst()); + node.setDoName(fcda.getDoName()); + node.setDaName(fcda.getDaName()); + node.setFc(fcda.getFc()); + node.setIx(fcda.getIx()); + return node; + } + + private String first(List values) { + return values == null || values.isEmpty() ? null : values.get(0); + } + + private String extractLdPrefix(String ldInst) { + if (ldInst == null) { + return null; + } + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < ldInst.length(); i++) { + char c = ldInst.charAt(i); + if (Character.isDigit(c)) { + break; + } + builder.append(c); + } + return builder.length() == 0 ? ldInst : builder.toString(); + } + + /** + * 把 DOI 的 sequenceCount 同步出来。 + * + * 规则严格贴近原 C#: + * 1. 优先从 DataTypeTemplates -> LNodeType -> DO -> DOType -> DA.count 取值; + * 2. 如果模板里没有 count,再退回 DataSet/FCDA 反查; + * 3. 这样后续 MappingGenerationService 里的 icdcout 才会和 C# 一致。 + */ + private void syncDoiSequenceCount(SCL scl, IcdDocument document) { + if (document == null || document.getLogicalNodes() == null) { + return; + } + + // 先把 “lnType + doName -> count” 建好缓存 + Map templateSequenceCountMap = buildTemplateSequenceCountMap(scl); + + for (LnNode lnNode : document.getLogicalNodes()) { + if (lnNode == null || lnNode.getDoiList() == null) { + continue; + } + + for (DoiNode doiNode : lnNode.getDoiList()) { + if (doiNode == null) { + continue; + } + + int templateCount = 0; + if (lnNode.getLnType() != null && doiNode.getName() != null) { + Integer value = templateSequenceCountMap.get(buildLnTypeDoKey(lnNode.getLnType(), doiNode.getName())); + templateCount = value == null ? 0 : value.intValue(); + } + + int fcdaCount = findDoiSequenceCountFromFcda(document, doiNode); + + // 关键:优先使用模板 count,保持与 C# 原版一致 + doiNode.setSequenceCount(templateCount > 0 ? templateCount : fcdaCount); + } + } + } + + /** + * 构建 “lnType + doName -> 序列数量” 缓存。 + * + * 来源: + * DataTypeTemplates + * -> LNodeType(id = lnType) + * -> DO(name/type) + * -> DOType(id = type) + * -> DA.count + * + * C# 原版本质上就是沿这条链把 doi.tNUM 算出来。 + */ + private Map buildTemplateSequenceCountMap(SCL scl) { + Map result = new LinkedHashMap(); + if (scl == null || scl.getDataTypeTemplates() == null) { + return result; + } + + TDataTypeTemplates templates = scl.getDataTypeTemplates(); + if (templates.getLNodeType() == null || templates.getDOType() == null) { + return result; + } + + // 1. 先建 DOType.id -> count + Map doTypeCountMap = new LinkedHashMap(); + for (TDOType doType : templates.getDOType()) { + if (doType == null || doType.getId() == null) { + continue; + } + + int count = extractDoTypeSequenceCount(doType); + doTypeCountMap.put(doType.getId(), count); + } + + // 2. 再建 lnType + doName -> count + for (TLNodeType lNodeType : templates.getLNodeType()) { + if (lNodeType == null || lNodeType.getId() == null || lNodeType.getDO() == null) { + continue; + } + + for (TDO tdo : lNodeType.getDO()) { + if (tdo == null || tdo.getName() == null || tdo.getType() == null) { + continue; + } + + Integer count = doTypeCountMap.get(tdo.getType()); + if (count == null) { + count = 0; + } + + result.put(buildLnTypeDoKey(lNodeType.getId(), tdo.getName()), count); + } + } + + return result; + } + + /** + * 从一个 DOType 中提取序列数量。 + * + * C# 原版用的是 DOType 下 DA.count。 + * 这里取所有顶层 DA 里最大的正整数 count。 + */ + private int extractDoTypeSequenceCount(TDOType doType) { + int max = 0; + if (doType == null || doType.getSDOOrDA() == null) { + return 0; + } + + for (TUnNaming item : doType.getSDOOrDA()) { + if (!(item instanceof TDA)) { + continue; + } + + TDA da = (TDA) item; + int value = parseDaCount(da); + if (value > max) { + max = value; + } + } + + return max; + } + + /** + * 解析 DA.count。 + * + * JAXB 这套生成类把 count 生成为 List, + * 所以这里要做一次安全转换。 + */ + private int parseDaCount(TAbstractDataAttribute dataAttribute) { + if (dataAttribute == null || dataAttribute.getCount() == null || dataAttribute.getCount().isEmpty()) { + return 0; + } + + int max = 0; + for (String raw : dataAttribute.getCount()) { + if (raw == null) { + continue; + } + + String text = raw.trim(); + if (text.isEmpty()) { + continue; + } + + try { + int value = Integer.parseInt(text); + if (value > max) { + max = value; + } + } catch (NumberFormatException ignore) { + // 非法 count 直接忽略,保持容错 + } + } + return max; + } + + /** + * 退回到 DataSet/FCDA 的 sequenceCount 反查。 + * + * 这里只作为模板 count 找不到时的兜底逻辑。 + */ + private int findDoiSequenceCountFromFcda(IcdDocument document, DoiNode doiNode) { + int max = 0; + if (document == null || document.getDataSets() == null || doiNode == null) { + return 0; + } + + for (DataSetNode dataSetNode : document.getDataSets().values()) { + if (dataSetNode == null || dataSetNode.getFcdas() == null) { + continue; + } + + for (FcdaNode fcda : dataSetNode.getFcdas()) { + if (fcda == null) { + continue; + } + + boolean sameLnClass = equalsTrim(fcda.getLnClass(), doiNode.getLnClass()); + boolean sameLnInst = equalsTrim(fcda.getLnInst(), doiNode.getLnInst()); + boolean sameDoName = equalsTrim(fcda.getDoName(), doiNode.getName()); + + if (sameLnClass && sameLnInst && sameDoName) { + if (fcda.getSequenceCount() > max) { + max = fcda.getSequenceCount(); + } + if (fcda.getIx() != null && fcda.getIx() > max) { + max = fcda.getIx().intValue(); + } + } + } + } + + return max; + } + + private String buildLnTypeDoKey(String lnType, String doName) { + String left = lnType == null ? "" : lnType.trim(); + String right = doName == null ? "" : doName.trim(); + return left + "##" + right; + } + + /** + * 空安全字符串比较。 + */ + private boolean equalsTrim(String left, String right) { + if (left == null && right == null) { + return true; + } + if (left == null || right == null) { + return false; + } + return left.trim().equals(right.trim()); + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclParserAdapter.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclParserAdapter.java new file mode 100644 index 0000000..5ba1801 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclParserAdapter.java @@ -0,0 +1,53 @@ +package com.njcn.gather.icd.mapping.infrastructure.parser; + +import com.njcn.gather.icd.mapping.domain.model.icd.IcdDocument; +import com.njcn.gather.icd.mapping.infrastructure.parser.generated.SCL; +import org.springframework.stereotype.Component; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.Unmarshaller; +import java.io.ByteArrayInputStream; + +/** + * SCL 解析适配器。 + * JAXB 解析适配器。负责把 ICD XML 反序列化为 SCL 根对象,再转成内部模型。 + * + * 说明: + * 1. 这是真正会用到的 JAXB 版解析入口。 + * 2. 这里只负责把 ICD XML 反序列化成 SCL 根对象,再交给 reader 转成内部模型。 + * 3. 业务层不会直接依赖 JAXB generated 类。 + */ +@Component +public class SclParserAdapter { + + private final SclGeneratedModelReader modelReader = new SclGeneratedModelReader(); + + public IcdDocument parse(byte[] content, String fileName) { + if (content == null || content.length == 0) { + throw new IllegalArgumentException("ICD 文件内容不能为空"); + } + try { + JAXBContext context = JAXBContext.newInstance(SCL.class); + Unmarshaller unmarshaller = context.createUnmarshaller(); + Object raw = unmarshaller.unmarshal(new ByteArrayInputStream(content)); + SCL scl = resolveSclRoot(raw); + return modelReader.read(scl, fileName); + } catch (Exception ex) { + throw new IllegalArgumentException("ICD 解析失败:" + ex.getMessage(), ex); + } + } + + private SCL resolveSclRoot(Object raw) { + if (raw instanceof SCL) { + return (SCL) raw; + } + if (raw instanceof JAXBElement) { + Object value = ((JAXBElement) raw).getValue(); + if (value instanceof SCL) { + return (SCL) value; + } + } + throw new IllegalArgumentException("ICD 根节点不是 SCL"); + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclTraversalSupport.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclTraversalSupport.java new file mode 100644 index 0000000..856d1be --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/SclTraversalSupport.java @@ -0,0 +1,61 @@ +package com.njcn.gather.icd.mapping.infrastructure.parser; + +import com.njcn.gather.icd.mapping.domain.model.icd.DoiElementNode; +import com.njcn.gather.icd.mapping.domain.model.icd.DoiNode; +import com.njcn.gather.icd.mapping.domain.model.icd.FcdaNode; + +import java.util.ArrayList; +import java.util.List; + +/** + * SCL 遍历辅助工具。 + */ +public final class SclTraversalSupport { + + private SclTraversalSupport() { + } + + /** + * 统计同一个数据对象在同数据集里出现的次数,作为 ICD 实际序列个数参考。 + */ + public static int calculateSequenceCount(List allFcdas, FcdaNode current) { + int count = 0; + for (FcdaNode item : allFcdas) { + if (safeEquals(item.getLnClass(), current.getLnClass()) + && safeEquals(item.getLnInst(), current.getLnInst()) + && safeEquals(item.getDoName(), current.getDoName())) { + count++; + } + } + return count <= 1 ? 0 : count; + } + + public static List flattenLeafDai(DoiNode doi) { + List result = new ArrayList(); + if (doi == null || doi.getChildren() == null) { + return result; + } + for (DoiElementNode child : doi.getChildren()) { + collectLeafDai(child, result); + } + return result; + } + + private static void collectLeafDai(DoiElementNode node, List result) { + if (node == null) { + return; + } + if ("DAI".equals(node.getKind())) { + result.add(node); + } + if (node.getChildren() != null) { + for (DoiElementNode child : node.getChildren()) { + collectLeafDai(child, result); + } + } + } + + public static boolean safeEquals(String a, String b) { + return a == null ? b == null : a.equals(b); + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated-com.example.scl.generated.zip b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated-com.example.scl.generated.zip new file mode 100644 index 0000000..9baf778 Binary files /dev/null and b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated-com.example.scl.generated.zip differ diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated-package-replaced.zip b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated-package-replaced.zip new file mode 100644 index 0000000..39be839 Binary files /dev/null and b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated-package-replaced.zip differ diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/LN0.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/LN0.java new file mode 100644 index 0000000..82880e1 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/LN0.java @@ -0,0 +1,42 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tLN0">
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "") +@XmlRootElement(name = "LN0") +public class LN0 + extends TLN0 +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/ObjectFactory.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/ObjectFactory.java new file mode 100644 index 0000000..e404024 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/ObjectFactory.java @@ -0,0 +1,1398 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the com.njcn.gather.icd.mapping.infrastructure.parser.generated package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Substation_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "Substation"); + private final static QName _Process_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "Process"); + private final static QName _Line_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "Line"); + private final static QName _LN_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "LN"); + private final static QName _IED_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "IED"); + private final static QName _Communication_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "Communication"); + private final static QName _DataTypeTemplates_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "DataTypeTemplates"); + private final static QName _TSMVSettingsSmpRate_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "SmpRate"); + private final static QName _TSMVSettingsSamplesPerSec_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "SamplesPerSec"); + private final static QName _TSMVSettingsSecPerSamples_QNAME = new QName("http://www.iec.ch/61850/2003/SCL", "SecPerSamples"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.njcn.gather.icd.mapping.infrastructure.parser.generated + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link TSettingGroups } + * + */ + public TSettingGroups createTSettingGroups() { + return new TSettingGroups(); + } + + /** + * Create an instance of {@link TControlWithIEDName } + * + */ + public TControlWithIEDName createTControlWithIEDName() { + return new TControlWithIEDName(); + } + + /** + * Create an instance of {@link TServer } + * + */ + public TServer createTServer() { + return new TServer(); + } + + /** + * Create an instance of {@link THeader } + * + */ + public THeader createTHeader() { + return new THeader(); + } + + /** + * Create an instance of {@link TSampledValueControl } + * + */ + public TSampledValueControl createTSampledValueControl() { + return new TSampledValueControl(); + } + + /** + * Create an instance of {@link TReportControl } + * + */ + public TReportControl createTReportControl() { + return new TReportControl(); + } + + /** + * Create an instance of {@link TSubstation } + * + */ + public TSubstation createTSubstation() { + return new TSubstation(); + } + + /** + * Create an instance of {@link TProcess } + * + */ + public TProcess createTProcess() { + return new TProcess(); + } + + /** + * Create an instance of {@link TLine } + * + */ + public TLine createTLine() { + return new TLine(); + } + + /** + * Create an instance of {@link LN0 } + * + */ + public LN0 createLN0() { + return new LN0(); + } + + /** + * Create an instance of {@link TLN0 } + * + */ + public TLN0 createTLN0() { + return new TLN0(); + } + + /** + * Create an instance of {@link TText } + * + */ + public TText createTText() { + return new TText(); + } + + /** + * Create an instance of {@link TPrivate } + * + */ + public TPrivate createTPrivate() { + return new TPrivate(); + } + + /** + * Create an instance of {@link TDataSet } + * + */ + public TDataSet createTDataSet() { + return new TDataSet(); + } + + /** + * Create an instance of {@link TLogControl } + * + */ + public TLogControl createTLogControl() { + return new TLogControl(); + } + + /** + * Create an instance of {@link TDOI } + * + */ + public TDOI createTDOI() { + return new TDOI(); + } + + /** + * Create an instance of {@link TInputs } + * + */ + public TInputs createTInputs() { + return new TInputs(); + } + + /** + * Create an instance of {@link TOutputs } + * + */ + public TOutputs createTOutputs() { + return new TOutputs(); + } + + /** + * Create an instance of {@link TLog } + * + */ + public TLog createTLog() { + return new TLog(); + } + + /** + * Create an instance of {@link TLabels } + * + */ + public TLabels createTLabels() { + return new TLabels(); + } + + /** + * Create an instance of {@link TGSEControl } + * + */ + public TGSEControl createTGSEControl() { + return new TGSEControl(); + } + + /** + * Create an instance of {@link TSettingControl } + * + */ + public TSettingControl createTSettingControl() { + return new TSettingControl(); + } + + /** + * Create an instance of {@link TLN } + * + */ + public TLN createTLN() { + return new TLN(); + } + + /** + * Create an instance of {@link TIED } + * + */ + public TIED createTIED() { + return new TIED(); + } + + /** + * Create an instance of {@link TCommunication } + * + */ + public TCommunication createTCommunication() { + return new TCommunication(); + } + + /** + * Create an instance of {@link TDataTypeTemplates } + * + */ + public TDataTypeTemplates createTDataTypeTemplates() { + return new TDataTypeTemplates(); + } + + /** + * Create an instance of {@link SCL } + * + */ + public SCL createSCL() { + return new SCL(); + } + + /** + * Create an instance of {@link TLabel } + * + */ + public TLabel createTLabel() { + return new TLabel(); + } + + /** + * Create an instance of {@link THitem } + * + */ + public THitem createTHitem() { + return new THitem(); + } + + /** + * Create an instance of {@link THeaderSclRef } + * + */ + public THeaderSclRef createTHeaderSclRef() { + return new THeaderSclRef(); + } + + /** + * Create an instance of {@link TVal } + * + */ + public TVal createTVal() { + return new TVal(); + } + + /** + * Create an instance of {@link TValueWithUnit } + * + */ + public TValueWithUnit createTValueWithUnit() { + return new TValueWithUnit(); + } + + /** + * Create an instance of {@link TVoltage } + * + */ + public TVoltage createTVoltage() { + return new TVoltage(); + } + + /** + * Create an instance of {@link TDurationInSec } + * + */ + public TDurationInSec createTDurationInSec() { + return new TDurationInSec(); + } + + /** + * Create an instance of {@link TDurationInMilliSec } + * + */ + public TDurationInMilliSec createTDurationInMilliSec() { + return new TDurationInMilliSec(); + } + + /** + * Create an instance of {@link TBitRateInMbPerSec } + * + */ + public TBitRateInMbPerSec createTBitRateInMbPerSec() { + return new TBitRateInMbPerSec(); + } + + /** + * Create an instance of {@link TSclFileUUIDReference } + * + */ + public TSclFileUUIDReference createTSclFileUUIDReference() { + return new TSclFileUUIDReference(); + } + + /** + * Create an instance of {@link TConductingEquipment } + * + */ + public TConductingEquipment createTConductingEquipment() { + return new TConductingEquipment(); + } + + /** + * Create an instance of {@link TSubEquipment } + * + */ + public TSubEquipment createTSubEquipment() { + return new TSubEquipment(); + } + + /** + * Create an instance of {@link TPowerTransformer } + * + */ + public TPowerTransformer createTPowerTransformer() { + return new TPowerTransformer(); + } + + /** + * Create an instance of {@link TTransformerWinding } + * + */ + public TTransformerWinding createTTransformerWinding() { + return new TTransformerWinding(); + } + + /** + * Create an instance of {@link TTapChanger } + * + */ + public TTapChanger createTTapChanger() { + return new TTapChanger(); + } + + /** + * Create an instance of {@link TGeneralEquipment } + * + */ + public TGeneralEquipment createTGeneralEquipment() { + return new TGeneralEquipment(); + } + + /** + * Create an instance of {@link TVoltageLevel } + * + */ + public TVoltageLevel createTVoltageLevel() { + return new TVoltageLevel(); + } + + /** + * Create an instance of {@link TBay } + * + */ + public TBay createTBay() { + return new TBay(); + } + + /** + * Create an instance of {@link TLNode } + * + */ + public TLNode createTLNode() { + return new TLNode(); + } + + /** + * Create an instance of {@link TFunction } + * + */ + public TFunction createTFunction() { + return new TFunction(); + } + + /** + * Create an instance of {@link TSubFunction } + * + */ + public TSubFunction createTSubFunction() { + return new TSubFunction(); + } + + /** + * Create an instance of {@link TEqFunction } + * + */ + public TEqFunction createTEqFunction() { + return new TEqFunction(); + } + + /** + * Create an instance of {@link TEqSubFunction } + * + */ + public TEqSubFunction createTEqSubFunction() { + return new TEqSubFunction(); + } + + /** + * Create an instance of {@link TConnectivityNode } + * + */ + public TConnectivityNode createTConnectivityNode() { + return new TConnectivityNode(); + } + + /** + * Create an instance of {@link TTerminal } + * + */ + public TTerminal createTTerminal() { + return new TTerminal(); + } + + /** + * Create an instance of {@link TIEDSclRef } + * + */ + public TIEDSclRef createTIEDSclRef() { + return new TIEDSclRef(); + } + + /** + * Create an instance of {@link TMinRequestedSCDFiles } + * + */ + public TMinRequestedSCDFiles createTMinRequestedSCDFiles() { + return new TMinRequestedSCDFiles(); + } + + /** + * Create an instance of {@link TMinRequestedSCDFile } + * + */ + public TMinRequestedSCDFile createTMinRequestedSCDFile() { + return new TMinRequestedSCDFile(); + } + + /** + * Create an instance of {@link TServices } + * + */ + public TServices createTServices() { + return new TServices(); + } + + /** + * Create an instance of {@link TAccessPoint } + * + */ + public TAccessPoint createTAccessPoint() { + return new TAccessPoint(); + } + + /** + * Create an instance of {@link TCertificate } + * + */ + public TCertificate createTCertificate() { + return new TCertificate(); + } + + /** + * Create an instance of {@link TCert } + * + */ + public TCert createTCert() { + return new TCert(); + } + + /** + * Create an instance of {@link TServerAt } + * + */ + public TServerAt createTServerAt() { + return new TServerAt(); + } + + /** + * Create an instance of {@link TLDevice } + * + */ + public TLDevice createTLDevice() { + return new TLDevice(); + } + + /** + * Create an instance of {@link TAccessControl } + * + */ + public TAccessControl createTAccessControl() { + return new TAccessControl(); + } + + /** + * Create an instance of {@link TAssociation } + * + */ + public TAssociation createTAssociation() { + return new TAssociation(); + } + + /** + * Create an instance of {@link TFCDA } + * + */ + public TFCDA createTFCDA() { + return new TFCDA(); + } + + /** + * Create an instance of {@link TTrgOps } + * + */ + public TTrgOps createTTrgOps() { + return new TTrgOps(); + } + + /** + * Create an instance of {@link TRptEnabled } + * + */ + public TRptEnabled createTRptEnabled() { + return new TRptEnabled(); + } + + /** + * Create an instance of {@link TClientLN } + * + */ + public TClientLN createTClientLN() { + return new TClientLN(); + } + + /** + * Create an instance of {@link TExtRef } + * + */ + public TExtRef createTExtRef() { + return new TExtRef(); + } + + /** + * Create an instance of {@link TExtCtrl } + * + */ + public TExtCtrl createTExtCtrl() { + return new TExtCtrl(); + } + + /** + * Create an instance of {@link TProtocol } + * + */ + public TProtocol createTProtocol() { + return new TProtocol(); + } + + /** + * Create an instance of {@link TSDI } + * + */ + public TSDI createTSDI() { + return new TSDI(); + } + + /** + * Create an instance of {@link TDAI } + * + */ + public TDAI createTDAI() { + return new TDAI(); + } + + /** + * Create an instance of {@link TServiceYesNo } + * + */ + public TServiceYesNo createTServiceYesNo() { + return new TServiceYesNo(); + } + + /** + * Create an instance of {@link TServiceWithOptionalMax } + * + */ + public TServiceWithOptionalMax createTServiceWithOptionalMax() { + return new TServiceWithOptionalMax(); + } + + /** + * Create an instance of {@link TServiceWithMax } + * + */ + public TServiceWithMax createTServiceWithMax() { + return new TServiceWithMax(); + } + + /** + * Create an instance of {@link TServiceWithMaxNonZero } + * + */ + public TServiceWithMaxNonZero createTServiceWithMaxNonZero() { + return new TServiceWithMaxNonZero(); + } + + /** + * Create an instance of {@link TServiceConfReportControl } + * + */ + public TServiceConfReportControl createTServiceConfReportControl() { + return new TServiceConfReportControl(); + } + + /** + * Create an instance of {@link TServiceWithMaxAndMaxAttributes } + * + */ + public TServiceWithMaxAndMaxAttributes createTServiceWithMaxAndMaxAttributes() { + return new TServiceWithMaxAndMaxAttributes(); + } + + /** + * Create an instance of {@link TServiceWithMaxAndModify } + * + */ + public TServiceWithMaxAndModify createTServiceWithMaxAndModify() { + return new TServiceWithMaxAndModify(); + } + + /** + * Create an instance of {@link TServiceForConfDataSet } + * + */ + public TServiceForConfDataSet createTServiceForConfDataSet() { + return new TServiceForConfDataSet(); + } + + /** + * Create an instance of {@link TClientServices } + * + */ + public TClientServices createTClientServices() { + return new TClientServices(); + } + + /** + * Create an instance of {@link TReportSettings } + * + */ + public TReportSettings createTReportSettings() { + return new TReportSettings(); + } + + /** + * Create an instance of {@link TLogSettings } + * + */ + public TLogSettings createTLogSettings() { + return new TLogSettings(); + } + + /** + * Create an instance of {@link TGSESettings } + * + */ + public TGSESettings createTGSESettings() { + return new TGSESettings(); + } + + /** + * Create an instance of {@link TSMVSettings } + * + */ + public TSMVSettings createTSMVSettings() { + return new TSMVSettings(); + } + + /** + * Create an instance of {@link TConfLNs } + * + */ + public TConfLNs createTConfLNs() { + return new TConfLNs(); + } + + /** + * Create an instance of {@link TValueHandling } + * + */ + public TValueHandling createTValueHandling() { + return new TValueHandling(); + } + + /** + * Create an instance of {@link TFileHandling } + * + */ + public TFileHandling createTFileHandling() { + return new TFileHandling(); + } + + /** + * Create an instance of {@link TGOOSEcapabilities } + * + */ + public TGOOSEcapabilities createTGOOSEcapabilities() { + return new TGOOSEcapabilities(); + } + + /** + * Create an instance of {@link TRedProt } + * + */ + public TRedProt createTRedProt() { + return new TRedProt(); + } + + /** + * Create an instance of {@link TTimeSyncProt } + * + */ + public TTimeSyncProt createTTimeSyncProt() { + return new TTimeSyncProt(); + } + + /** + * Create an instance of {@link TSMVsc } + * + */ + public TSMVsc createTSMVsc() { + return new TSMVsc(); + } + + /** + * Create an instance of {@link TSupSubscription } + * + */ + public TSupSubscription createTSupSubscription() { + return new TSupSubscription(); + } + + /** + * Create an instance of {@link TCommProt } + * + */ + public TCommProt createTCommProt() { + return new TCommProt(); + } + + /** + * Create an instance of {@link TSCSM } + * + */ + public TSCSM createTSCSM() { + return new TSCSM(); + } + + /** + * Create an instance of {@link TMcSecurity } + * + */ + public TMcSecurity createTMcSecurity() { + return new TMcSecurity(); + } + + /** + * Create an instance of {@link TSecurity } + * + */ + public TSecurity createTSecurity() { + return new TSecurity(); + } + + /** + * Create an instance of {@link TKDC } + * + */ + public TKDC createTKDC() { + return new TKDC(); + } + + /** + * Create an instance of {@link TSubNetwork } + * + */ + public TSubNetwork createTSubNetwork() { + return new TSubNetwork(); + } + + /** + * Create an instance of {@link TConnectedAP } + * + */ + public TConnectedAP createTConnectedAP() { + return new TConnectedAP(); + } + + /** + * Create an instance of {@link TAddress } + * + */ + public TAddress createTAddress() { + return new TAddress(); + } + + /** + * Create an instance of {@link TGSE } + * + */ + public TGSE createTGSE() { + return new TGSE(); + } + + /** + * Create an instance of {@link TSMV } + * + */ + public TSMV createTSMV() { + return new TSMV(); + } + + /** + * Create an instance of {@link TPhysConn } + * + */ + public TPhysConn createTPhysConn() { + return new TPhysConn(); + } + + /** + * Create an instance of {@link TPPhysConn } + * + */ + public TPPhysConn createTPPhysConn() { + return new TPPhysConn(); + } + + /** + * Create an instance of {@link TP } + * + */ + public TP createTP() { + return new TP(); + } + + /** + * Create an instance of {@link TPIP } + * + */ + public TPIP createTPIP() { + return new TPIP(); + } + + /** + * Create an instance of {@link TPIPSUBNET } + * + */ + public TPIPSUBNET createTPIPSUBNET() { + return new TPIPSUBNET(); + } + + /** + * Create an instance of {@link TPIPGATEWAY } + * + */ + public TPIPGATEWAY createTPIPGATEWAY() { + return new TPIPGATEWAY(); + } + + /** + * Create an instance of {@link TPIPv6 } + * + */ + public TPIPv6 createTPIPv6() { + return new TPIPv6(); + } + + /** + * Create an instance of {@link TPIPv6SUBNET } + * + */ + public TPIPv6SUBNET createTPIPv6SUBNET() { + return new TPIPv6SUBNET(); + } + + /** + * Create an instance of {@link TPIPv6GATEWAY } + * + */ + public TPIPv6GATEWAY createTPIPv6GATEWAY() { + return new TPIPv6GATEWAY(); + } + + /** + * Create an instance of {@link TPDNSName } + * + */ + public TPDNSName createTPDNSName() { + return new TPDNSName(); + } + + /** + * Create an instance of {@link TPIPv6FlowLabel } + * + */ + public TPIPv6FlowLabel createTPIPv6FlowLabel() { + return new TPIPv6FlowLabel(); + } + + /** + * Create an instance of {@link TPOSINSAP } + * + */ + public TPOSINSAP createTPOSINSAP() { + return new TPOSINSAP(); + } + + /** + * Create an instance of {@link TPOSITSEL } + * + */ + public TPOSITSEL createTPOSITSEL() { + return new TPOSITSEL(); + } + + /** + * Create an instance of {@link TPOSISSEL } + * + */ + public TPOSISSEL createTPOSISSEL() { + return new TPOSISSEL(); + } + + /** + * Create an instance of {@link TPOSIPSEL } + * + */ + public TPOSIPSEL createTPOSIPSEL() { + return new TPOSIPSEL(); + } + + /** + * Create an instance of {@link TPOSIAPTitle } + * + */ + public TPOSIAPTitle createTPOSIAPTitle() { + return new TPOSIAPTitle(); + } + + /** + * Create an instance of {@link TPOSIAPInvoke } + * + */ + public TPOSIAPInvoke createTPOSIAPInvoke() { + return new TPOSIAPInvoke(); + } + + /** + * Create an instance of {@link TPOSIAEQualifier } + * + */ + public TPOSIAEQualifier createTPOSIAEQualifier() { + return new TPOSIAEQualifier(); + } + + /** + * Create an instance of {@link TPOSIAEInvoke } + * + */ + public TPOSIAEInvoke createTPOSIAEInvoke() { + return new TPOSIAEInvoke(); + } + + /** + * Create an instance of {@link TPMACAddress } + * + */ + public TPMACAddress createTPMACAddress() { + return new TPMACAddress(); + } + + /** + * Create an instance of {@link TPAPPID } + * + */ + public TPAPPID createTPAPPID() { + return new TPAPPID(); + } + + /** + * Create an instance of {@link TPVLANPRIORITY } + * + */ + public TPVLANPRIORITY createTPVLANPRIORITY() { + return new TPVLANPRIORITY(); + } + + /** + * Create an instance of {@link TPVLANID } + * + */ + public TPVLANID createTPVLANID() { + return new TPVLANID(); + } + + /** + * Create an instance of {@link TPSNTPPort } + * + */ + public TPSNTPPort createTPSNTPPort() { + return new TPSNTPPort(); + } + + /** + * Create an instance of {@link TPMMSPort } + * + */ + public TPMMSPort createTPMMSPort() { + return new TPMMSPort(); + } + + /** + * Create an instance of {@link TPUDPPort } + * + */ + public TPUDPPort createTPUDPPort() { + return new TPUDPPort(); + } + + /** + * Create an instance of {@link TPTCPPort } + * + */ + public TPTCPPort createTPTCPPort() { + return new TPTCPPort(); + } + + /** + * Create an instance of {@link TPIPv6ClassOfTraffic } + * + */ + public TPIPv6ClassOfTraffic createTPIPv6ClassOfTraffic() { + return new TPIPv6ClassOfTraffic(); + } + + /** + * Create an instance of {@link TPC37118IPPort } + * + */ + public TPC37118IPPort createTPC37118IPPort() { + return new TPC37118IPPort(); + } + + /** + * Create an instance of {@link TPIPv6IGMPv3Src } + * + */ + public TPIPv6IGMPv3Src createTPIPv6IGMPv3Src() { + return new TPIPv6IGMPv3Src(); + } + + /** + * Create an instance of {@link TPIPIGMPv3Src } + * + */ + public TPIPIGMPv3Src createTPIPIGMPv3Src() { + return new TPIPIGMPv3Src(); + } + + /** + * Create an instance of {@link TPIPClassOfTraffic } + * + */ + public TPIPClassOfTraffic createTPIPClassOfTraffic() { + return new TPIPClassOfTraffic(); + } + + /** + * Create an instance of {@link TLNodeType } + * + */ + public TLNodeType createTLNodeType() { + return new TLNodeType(); + } + + /** + * Create an instance of {@link TDO } + * + */ + public TDO createTDO() { + return new TDO(); + } + + /** + * Create an instance of {@link TDOType } + * + */ + public TDOType createTDOType() { + return new TDOType(); + } + + /** + * Create an instance of {@link TSDO } + * + */ + public TSDO createTSDO() { + return new TSDO(); + } + + /** + * Create an instance of {@link TDA } + * + */ + public TDA createTDA() { + return new TDA(); + } + + /** + * Create an instance of {@link TDAType } + * + */ + public TDAType createTDAType() { + return new TDAType(); + } + + /** + * Create an instance of {@link TBDA } + * + */ + public TBDA createTBDA() { + return new TBDA(); + } + + /** + * Create an instance of {@link TEnumType } + * + */ + public TEnumType createTEnumType() { + return new TEnumType(); + } + + /** + * Create an instance of {@link TProtNs } + * + */ + public TProtNs createTProtNs() { + return new TProtNs(); + } + + /** + * Create an instance of {@link TEnumVal } + * + */ + public TEnumVal createTEnumVal() { + return new TEnumVal(); + } + + /** + * Create an instance of {@link TSettingGroups.SGEdit } + * + */ + public TSettingGroups.SGEdit createTSettingGroupsSGEdit() { + return new TSettingGroups.SGEdit(); + } + + /** + * Create an instance of {@link TSettingGroups.ConfSG } + * + */ + public TSettingGroups.ConfSG createTSettingGroupsConfSG() { + return new TSettingGroups.ConfSG(); + } + + /** + * Create an instance of {@link TControlWithIEDName.IEDName } + * + */ + public TControlWithIEDName.IEDName createTControlWithIEDNameIEDName() { + return new TControlWithIEDName.IEDName(); + } + + /** + * Create an instance of {@link TServer.Authentication } + * + */ + public TServer.Authentication createTServerAuthentication() { + return new TServer.Authentication(); + } + + /** + * Create an instance of {@link THeader.History } + * + */ + public THeader.History createTHeaderHistory() { + return new THeader.History(); + } + + /** + * Create an instance of {@link TSampledValueControl.SmvOpts } + * + */ + public TSampledValueControl.SmvOpts createTSampledValueControlSmvOpts() { + return new TSampledValueControl.SmvOpts(); + } + + /** + * Create an instance of {@link TReportControl.OptFields } + * + */ + public TReportControl.OptFields createTReportControlOptFields() { + return new TReportControl.OptFields(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TSubstation }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link TSubstation }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "Substation") + public JAXBElement createSubstation(TSubstation value) { + return new JAXBElement(_Substation_QNAME, TSubstation.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TProcess }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link TProcess }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "Process") + public JAXBElement createProcess(TProcess value) { + return new JAXBElement(_Process_QNAME, TProcess.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TLine }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link TLine }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "Line") + public JAXBElement createLine(TLine value) { + return new JAXBElement(_Line_QNAME, TLine.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TLN }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link TLN }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "LN") + public JAXBElement createLN(TLN value) { + return new JAXBElement(_LN_QNAME, TLN.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TIED }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link TIED }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "IED") + public JAXBElement createIED(TIED value) { + return new JAXBElement(_IED_QNAME, TIED.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TCommunication }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link TCommunication }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "Communication") + public JAXBElement createCommunication(TCommunication value) { + return new JAXBElement(_Communication_QNAME, TCommunication.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TDataTypeTemplates }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link TDataTypeTemplates }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "DataTypeTemplates") + public JAXBElement createDataTypeTemplates(TDataTypeTemplates value) { + return new JAXBElement(_DataTypeTemplates_QNAME, TDataTypeTemplates.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Long }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link Long }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "SmpRate", scope = TSMVSettings.class) + public JAXBElement createTSMVSettingsSmpRate(Long value) { + return new JAXBElement(_TSMVSettingsSmpRate_QNAME, Long.class, TSMVSettings.class, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Long }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link Long }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "SamplesPerSec", scope = TSMVSettings.class) + public JAXBElement createTSMVSettingsSamplesPerSec(Long value) { + return new JAXBElement(_TSMVSettingsSamplesPerSec_QNAME, Long.class, TSMVSettings.class, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link Long }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link Long }{@code >} + */ + @XmlElementDecl(namespace = "http://www.iec.ch/61850/2003/SCL", name = "SecPerSamples", scope = TSMVSettings.class) + public JAXBElement createTSMVSettingsSecPerSamples(Long value) { + return new JAXBElement(_TSMVSettingsSecPerSamples_QNAME, Long.class, TSMVSettings.class, value); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/SCL.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/SCL.java new file mode 100644 index 0000000..928b50c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/SCL.java @@ -0,0 +1,351 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <sequence>
+ *         <element name="Header" type="{http://www.iec.ch/61850/2003/SCL}tHeader"/>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}Substation" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}Communication" minOccurs="0"/>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}IED" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}DataTypeTemplates" minOccurs="0"/>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}Line" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}Process" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="version" use="required" type="{http://www.iec.ch/61850/2003/SCL}tSclVersion" fixed="2007" />
+ *       <attribute name="revision" use="required" type="{http://www.iec.ch/61850/2003/SCL}tSclRevision" fixed="C" />
+ *       <attribute name="release" use="required" type="{http://www.iec.ch/61850/2003/SCL}tSclRelease" fixed="5" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "header", + "substation", + "communication", + "ied", + "dataTypeTemplates", + "line", + "process" +}) +@XmlRootElement(name = "SCL") +public class SCL + extends TBaseElement +{ + + @XmlElement(name = "Header", required = true) + protected THeader header; + @XmlElement(name = "Substation") + protected List substation; + @XmlElement(name = "Communication") + protected TCommunication communication; + @XmlElement(name = "IED") + protected List ied; + @XmlElement(name = "DataTypeTemplates") + protected TDataTypeTemplates dataTypeTemplates; + @XmlElement(name = "Line") + protected List line; + @XmlElement(name = "Process") + protected List process; + @XmlAttribute(name = "version", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String version; + @XmlAttribute(name = "revision", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String revision; + @XmlAttribute(name = "release", required = true) + protected short release; + + /** + * 获取header属性的值。 + * + * @return + * possible object is + * {@link THeader } + * + */ + public THeader getHeader() { + return header; + } + + /** + * 设置header属性的值。 + * + * @param value + * allowed object is + * {@link THeader } + * + */ + public void setHeader(THeader value) { + this.header = value; + } + + /** + * Gets the value of the substation property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the substation property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubstation().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubstation } + * + * + */ + public List getSubstation() { + if (substation == null) { + substation = new ArrayList(); + } + return this.substation; + } + + /** + * 获取communication属性的值。 + * + * @return + * possible object is + * {@link TCommunication } + * + */ + public TCommunication getCommunication() { + return communication; + } + + /** + * 设置communication属性的值。 + * + * @param value + * allowed object is + * {@link TCommunication } + * + */ + public void setCommunication(TCommunication value) { + this.communication = value; + } + + /** + * Gets the value of the ied property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the ied property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getIED().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TIED } + * + * + */ + public List getIED() { + if (ied == null) { + ied = new ArrayList(); + } + return this.ied; + } + + /** + * 获取dataTypeTemplates属性的值。 + * + * @return + * possible object is + * {@link TDataTypeTemplates } + * + */ + public TDataTypeTemplates getDataTypeTemplates() { + return dataTypeTemplates; + } + + /** + * 设置dataTypeTemplates属性的值。 + * + * @param value + * allowed object is + * {@link TDataTypeTemplates } + * + */ + public void setDataTypeTemplates(TDataTypeTemplates value) { + this.dataTypeTemplates = value; + } + + /** + * Gets the value of the line property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the line property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLine().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLine } + * + * + */ + public List getLine() { + if (line == null) { + line = new ArrayList(); + } + return this.line; + } + + /** + * Gets the value of the process property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the process property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getProcess().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TProcess } + * + * + */ + public List getProcess() { + if (process == null) { + process = new ArrayList(); + } + return this.process; + } + + /** + * 获取version属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + if (version == null) { + return "2007"; + } else { + return version; + } + } + + /** + * 设置version属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * 获取revision属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getRevision() { + if (revision == null) { + return "C"; + } else { + return revision; + } + } + + /** + * 设置revision属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRevision(String value) { + this.revision = value; + } + + /** + * 获取release属性的值。 + * + */ + public short getRelease() { + return release; + } + + /** + * 设置release属性的值。 + * + */ + public void setRelease(short value) { + this.release = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractConductingEquipment.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractConductingEquipment.java new file mode 100644 index 0000000..59b23fe --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractConductingEquipment.java @@ -0,0 +1,117 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tAbstractConductingEquipment complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAbstractConductingEquipment">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tEquipment">
+ *       <sequence>
+ *         <element name="Terminal" type="{http://www.iec.ch/61850/2003/SCL}tTerminal" maxOccurs="2" minOccurs="0"/>
+ *         <element name="SubEquipment" type="{http://www.iec.ch/61850/2003/SCL}tSubEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAbstractConductingEquipment", propOrder = { + "terminal", + "subEquipment" +}) +@XmlSeeAlso({ + TConductingEquipment.class, + TTransformerWinding.class +}) +public abstract class TAbstractConductingEquipment + extends TEquipment +{ + + @XmlElement(name = "Terminal") + protected List terminal; + @XmlElement(name = "SubEquipment") + protected List subEquipment; + + /** + * Gets the value of the terminal property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the terminal property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getTerminal().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TTerminal } + * + * + */ + public List getTerminal() { + if (terminal == null) { + terminal = new ArrayList(); + } + return this.terminal; + } + + /** + * Gets the value of the subEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the subEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubEquipment } + * + * + */ + public List getSubEquipment() { + if (subEquipment == null) { + subEquipment = new ArrayList(); + } + return this.subEquipment; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractDataAttribute.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractDataAttribute.java new file mode 100644 index 0000000..013f824 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractDataAttribute.java @@ -0,0 +1,325 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tAbstractDataAttribute complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAbstractDataAttribute">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Val" type="{http://www.iec.ch/61850/2003/SCL}tVal" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAttributeNameEnum" />
+ *       <attribute name="sAddr">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <maxLength value="255"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="bType" use="required" type="{http://www.iec.ch/61850/2003/SCL}tBasicTypeEnum" />
+ *       <attribute name="valKind" type="{http://www.iec.ch/61850/2003/SCL}tValKindEnum" default="Set" />
+ *       <attribute name="type" type="{http://www.iec.ch/61850/2003/SCL}tAnyName" />
+ *       <attribute name="count" type="{http://www.iec.ch/61850/2003/SCL}tDACount" default="0" />
+ *       <attribute name="valImport" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAbstractDataAttribute", propOrder = { + "val", + "labels" +}) +@XmlSeeAlso({ + TDA.class, + TBDA.class +}) +public abstract class TAbstractDataAttribute + extends TUnNaming +{ + + @XmlElement(name = "Val") + protected List val; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + protected String name; + @XmlAttribute(name = "sAddr") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String sAddr; + @XmlAttribute(name = "bType", required = true) + protected TPredefinedBasicTypeEnum bType; + @XmlAttribute(name = "valKind") + protected TValKindEnum valKind; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String type; + @XmlAttribute(name = "count") + protected List count; + @XmlAttribute(name = "valImport") + protected Boolean valImport; + + /** + * Gets the value of the val property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the val property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getVal().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TVal } + * + * + */ + public List getVal() { + if (val == null) { + val = new ArrayList(); + } + return this.val; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取sAddr属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSAddr() { + return sAddr; + } + + /** + * 设置sAddr属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSAddr(String value) { + this.sAddr = value; + } + + /** + * 获取bType属性的值。 + * + * @return + * possible object is + * {@link TPredefinedBasicTypeEnum } + * + */ + public TPredefinedBasicTypeEnum getBType() { + return bType; + } + + /** + * 设置bType属性的值。 + * + * @param value + * allowed object is + * {@link TPredefinedBasicTypeEnum } + * + */ + public void setBType(TPredefinedBasicTypeEnum value) { + this.bType = value; + } + + /** + * 获取valKind属性的值。 + * + * @return + * possible object is + * {@link TValKindEnum } + * + */ + public TValKindEnum getValKind() { + if (valKind == null) { + return TValKindEnum.SET; + } else { + return valKind; + } + } + + /** + * 设置valKind属性的值。 + * + * @param value + * allowed object is + * {@link TValKindEnum } + * + */ + public void setValKind(TValKindEnum value) { + this.valKind = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * Gets the value of the count property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the count property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getCount().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getCount() { + if (count == null) { + count = new ArrayList(); + } + return this.count; + } + + /** + * 获取valImport属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isValImport() { + if (valImport == null) { + return false; + } else { + return valImport; + } + } + + /** + * 设置valImport属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setValImport(Boolean value) { + this.valImport = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractEqFuncSubFunc.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractEqFuncSubFunc.java new file mode 100644 index 0000000..4671878 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAbstractEqFuncSubFunc.java @@ -0,0 +1,150 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tAbstractEqFuncSubFunc complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAbstractEqFuncSubFunc">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <sequence>
+ *         <element name="GeneralEquipment" type="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="EqSubFunction" type="{http://www.iec.ch/61850/2003/SCL}tEqSubFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAbstractEqFuncSubFunc", propOrder = { + "generalEquipment", + "eqSubFunction" +}) +@XmlSeeAlso({ + TEqFunction.class, + TEqSubFunction.class +}) +public abstract class TAbstractEqFuncSubFunc + extends TPowerSystemResource +{ + + @XmlElement(name = "GeneralEquipment") + protected List generalEquipment; + @XmlElement(name = "EqSubFunction") + protected List eqSubFunction; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String type; + + /** + * Gets the value of the generalEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the generalEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGeneralEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TGeneralEquipment } + * + * + */ + public List getGeneralEquipment() { + if (generalEquipment == null) { + generalEquipment = new ArrayList(); + } + return this.generalEquipment; + } + + /** + * Gets the value of the eqSubFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the eqSubFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEqSubFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEqSubFunction } + * + * + */ + public List getEqSubFunction() { + if (eqSubFunction == null) { + eqSubFunction = new ArrayList(); + } + return this.eqSubFunction; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAccessControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAccessControl.java new file mode 100644 index 0000000..f237607 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAccessControl.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tAccessControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAccessControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAnyContentFromOtherNamespace">
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAccessControl") +public class TAccessControl + extends TAnyContentFromOtherNamespace +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAccessPoint.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAccessPoint.java new file mode 100644 index 0000000..9f5b938 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAccessPoint.java @@ -0,0 +1,436 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tAccessPoint complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAccessPoint">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <choice minOccurs="0">
+ *           <element name="Server" type="{http://www.iec.ch/61850/2003/SCL}tServer"/>
+ *           <element ref="{http://www.iec.ch/61850/2003/SCL}LN" maxOccurs="unbounded"/>
+ *           <element name="ServerAt" type="{http://www.iec.ch/61850/2003/SCL}tServerAt"/>
+ *         </choice>
+ *         <element name="Services" type="{http://www.iec.ch/61850/2003/SCL}tServices" minOccurs="0"/>
+ *         <element name="GOOSESecurity" type="{http://www.iec.ch/61850/2003/SCL}tCertificate" maxOccurs="7" minOccurs="0"/>
+ *         <element name="SMVSecurity" type="{http://www.iec.ch/61850/2003/SCL}tCertificate" maxOccurs="7" minOccurs="0"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *       <attribute name="router" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="clock" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="kdc" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAccessPoint", propOrder = { + "server", + "ln", + "serverAt", + "services", + "gooseSecurity", + "smvSecurity", + "labels" +}) +public class TAccessPoint + extends TUnNaming +{ + + @XmlElement(name = "Server") + protected TServer server; + @XmlElement(name = "LN") + protected List ln; + @XmlElement(name = "ServerAt") + protected TServerAt serverAt; + @XmlElement(name = "Services") + protected TServices services; + @XmlElement(name = "GOOSESecurity") + protected List gooseSecurity; + @XmlElement(name = "SMVSecurity") + protected List smvSecurity; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String name; + @XmlAttribute(name = "router") + protected Boolean router; + @XmlAttribute(name = "clock") + protected Boolean clock; + @XmlAttribute(name = "kdc") + protected Boolean kdc; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * 获取server属性的值。 + * + * @return + * possible object is + * {@link TServer } + * + */ + public TServer getServer() { + return server; + } + + /** + * 设置server属性的值。 + * + * @param value + * allowed object is + * {@link TServer } + * + */ + public void setServer(TServer value) { + this.server = value; + } + + /** + * Gets the value of the ln property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the ln property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLN().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLN } + * + * + */ + public List getLN() { + if (ln == null) { + ln = new ArrayList(); + } + return this.ln; + } + + /** + * 获取serverAt属性的值。 + * + * @return + * possible object is + * {@link TServerAt } + * + */ + public TServerAt getServerAt() { + return serverAt; + } + + /** + * 设置serverAt属性的值。 + * + * @param value + * allowed object is + * {@link TServerAt } + * + */ + public void setServerAt(TServerAt value) { + this.serverAt = value; + } + + /** + * 获取services属性的值。 + * + * @return + * possible object is + * {@link TServices } + * + */ + public TServices getServices() { + return services; + } + + /** + * 设置services属性的值。 + * + * @param value + * allowed object is + * {@link TServices } + * + */ + public void setServices(TServices value) { + this.services = value; + } + + /** + * Gets the value of the gooseSecurity property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gooseSecurity property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGOOSESecurity().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TCertificate } + * + * + */ + public List getGOOSESecurity() { + if (gooseSecurity == null) { + gooseSecurity = new ArrayList(); + } + return this.gooseSecurity; + } + + /** + * Gets the value of the smvSecurity property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the smvSecurity property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSMVSecurity().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TCertificate } + * + * + */ + public List getSMVSecurity() { + if (smvSecurity == null) { + smvSecurity = new ArrayList(); + } + return this.smvSecurity; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取router属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isRouter() { + if (router == null) { + return false; + } else { + return router; + } + } + + /** + * 设置router属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRouter(Boolean value) { + this.router = value; + } + + /** + * 获取clock属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isClock() { + if (clock == null) { + return false; + } else { + return clock; + } + } + + /** + * 设置clock属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setClock(Boolean value) { + this.clock = value; + } + + /** + * 获取kdc属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isKdc() { + if (kdc == null) { + return false; + } else { + return kdc; + } + } + + /** + * 设置kdc属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setKdc(Boolean value) { + this.kdc = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAddress.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAddress.java new file mode 100644 index 0000000..3cc2f38 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAddress.java @@ -0,0 +1,76 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tAddress complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAddress">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="P" type="{http://www.iec.ch/61850/2003/SCL}tP" maxOccurs="unbounded"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAddress", propOrder = { + "p" +}) +public class TAddress { + + @XmlElement(name = "P", required = true) + protected List p; + + /** + * Gets the value of the p property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the p property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getP().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TP } + * + * + */ + public List getP() { + if (p == null) { + p = new ArrayList(); + } + return this.p; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAnyContentFromOtherNamespace.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAnyContentFromOtherNamespace.java new file mode 100644 index 0000000..179c77c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAnyContentFromOtherNamespace.java @@ -0,0 +1,113 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyAttribute; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlMixed; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.namespace.QName; +import org.w3c.dom.Element; + + +/** + *

tAnyContentFromOtherNamespace complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAnyContentFromOtherNamespace">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence maxOccurs="unbounded" minOccurs="0">
+ *         <any processContents='lax' namespace='##other'/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAnyContentFromOtherNamespace", propOrder = { + "content" +}) +@XmlSeeAlso({ + TText.class, + TPrivate.class, + THitem.class, + TAccessControl.class +}) +public abstract class TAnyContentFromOtherNamespace { + + @XmlMixed + @XmlAnyElement(lax = true) + protected List content; + @XmlAnyAttribute + private Map otherAttributes = new HashMap(); + + /** + * Gets the value of the content property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the content property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getContent().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link Element } + * {@link Object } + * {@link String } + * + * + */ + public List getContent() { + if (content == null) { + content = new ArrayList(); + } + return this.content; + } + + /** + * Gets a map that contains attributes that aren't bound to any typed property on this class. + * + *

+ * the map is keyed by the name of the attribute and + * the value is the string value of the attribute. + * + * the map returned by this method is live, and you can add new attribute + * by updating the map directly. Because of this design, there's no setter. + * + * + * @return + * always non-null + */ + public Map getOtherAttributes() { + return otherAttributes; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAnyLN.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAnyLN.java new file mode 100644 index 0000000..ea3a21b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAnyLN.java @@ -0,0 +1,384 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tAnyLN complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAnyLN">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="DataSet" type="{http://www.iec.ch/61850/2003/SCL}tDataSet" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="ReportControl" type="{http://www.iec.ch/61850/2003/SCL}tReportControl" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="LogControl" type="{http://www.iec.ch/61850/2003/SCL}tLogControl" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="DOI" type="{http://www.iec.ch/61850/2003/SCL}tDOI" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Inputs" type="{http://www.iec.ch/61850/2003/SCL}tInputs" minOccurs="0"/>
+ *         <element name="Outputs" type="{http://www.iec.ch/61850/2003/SCL}tOutputs" minOccurs="0"/>
+ *         <element name="Log" type="{http://www.iec.ch/61850/2003/SCL}tLog" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="lnType" use="required" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAnyLN", propOrder = { + "dataSet", + "reportControl", + "logControl", + "doi", + "inputs", + "outputs", + "log", + "labels" +}) +@XmlSeeAlso({ + TLN.class, + TLN0 .class +}) +public abstract class TAnyLN + extends TUnNaming +{ + + @XmlElement(name = "DataSet") + protected List dataSet; + @XmlElement(name = "ReportControl") + protected List reportControl; + @XmlElement(name = "LogControl") + protected List logControl; + @XmlElement(name = "DOI") + protected List doi; + @XmlElement(name = "Inputs") + protected TInputs inputs; + @XmlElement(name = "Outputs") + protected TOutputs outputs; + @XmlElement(name = "Log") + protected List log; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "lnType", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String lnType; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * Gets the value of the dataSet property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the dataSet property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getDataSet().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TDataSet } + * + * + */ + public List getDataSet() { + if (dataSet == null) { + dataSet = new ArrayList(); + } + return this.dataSet; + } + + /** + * Gets the value of the reportControl property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the reportControl property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getReportControl().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TReportControl } + * + * + */ + public List getReportControl() { + if (reportControl == null) { + reportControl = new ArrayList(); + } + return this.reportControl; + } + + /** + * Gets the value of the logControl property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the logControl property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLogControl().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLogControl } + * + * + */ + public List getLogControl() { + if (logControl == null) { + logControl = new ArrayList(); + } + return this.logControl; + } + + /** + * Gets the value of the doi property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the doi property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getDOI().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TDOI } + * + * + */ + public List getDOI() { + if (doi == null) { + doi = new ArrayList(); + } + return this.doi; + } + + /** + * 获取inputs属性的值。 + * + * @return + * possible object is + * {@link TInputs } + * + */ + public TInputs getInputs() { + return inputs; + } + + /** + * 设置inputs属性的值。 + * + * @param value + * allowed object is + * {@link TInputs } + * + */ + public void setInputs(TInputs value) { + this.inputs = value; + } + + /** + * 获取outputs属性的值。 + * + * @return + * possible object is + * {@link TOutputs } + * + */ + public TOutputs getOutputs() { + return outputs; + } + + /** + * 设置outputs属性的值。 + * + * @param value + * allowed object is + * {@link TOutputs } + * + */ + public void setOutputs(TOutputs value) { + this.outputs = value; + } + + /** + * Gets the value of the log property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the log property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLog().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLog } + * + * + */ + public List getLog() { + if (log == null) { + log = new ArrayList(); + } + return this.log; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取lnType属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnType() { + return lnType; + } + + /** + * 设置lnType属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnType(String value) { + this.lnType = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociation.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociation.java new file mode 100644 index 0000000..71fe4c1 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociation.java @@ -0,0 +1,359 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tAssociation complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tAssociation">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agLNRef"/>
+ *       <attribute name="apRef" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *       <attribute name="kind" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAssociationKindEnum" />
+ *       <attribute name="associationID" type="{http://www.iec.ch/61850/2003/SCL}tAssociationID" />
+ *       <attribute name="initiator" type="{http://www.iec.ch/61850/2003/SCL}tAssociationInitiator" default="client" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tAssociation") +public class TAssociation { + + @XmlAttribute(name = "apRef", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String apRef; + @XmlAttribute(name = "kind", required = true) + protected TAssociationKindEnum kind; + @XmlAttribute(name = "associationID") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String associationID; + @XmlAttribute(name = "initiator") + protected TAssociationInitiator initiator; + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass", required = true) + protected List lnClass; + @XmlAttribute(name = "lnInst", required = true) + protected String lnInst; + @XmlAttribute(name = "lnUuid") + protected String lnUuid; + @XmlAttribute(name = "iedName", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String iedName; + @XmlAttribute(name = "ldInst", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldInst; + @XmlAttribute(name = "desc") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String desc; + + /** + * 获取apRef属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApRef() { + return apRef; + } + + /** + * 设置apRef属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApRef(String value) { + this.apRef = value; + } + + /** + * 获取kind属性的值。 + * + * @return + * possible object is + * {@link TAssociationKindEnum } + * + */ + public TAssociationKindEnum getKind() { + return kind; + } + + /** + * 设置kind属性的值。 + * + * @param value + * allowed object is + * {@link TAssociationKindEnum } + * + */ + public void setKind(TAssociationKindEnum value) { + this.kind = value; + } + + /** + * 获取associationID属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getAssociationID() { + return associationID; + } + + /** + * 设置associationID属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAssociationID(String value) { + this.associationID = value; + } + + /** + * 获取initiator属性的值。 + * + * @return + * possible object is + * {@link TAssociationInitiator } + * + */ + public TAssociationInitiator getInitiator() { + if (initiator == null) { + return TAssociationInitiator.CLIENT; + } else { + return initiator; + } + } + + /** + * 设置initiator属性的值。 + * + * @param value + * allowed object is + * {@link TAssociationInitiator } + * + */ + public void setInitiator(TAssociationInitiator value) { + this.initiator = value; + } + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + if (prefix == null) { + return ""; + } else { + return prefix; + } + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取lnInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnInst() { + return lnInst; + } + + /** + * 设置lnInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnInst(String value) { + this.lnInst = value; + } + + /** + * 获取lnUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnUuid() { + return lnUuid; + } + + /** + * 设置lnUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnUuid(String value) { + this.lnUuid = value; + } + + /** + * 获取iedName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedName() { + return iedName; + } + + /** + * 设置iedName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedName(String value) { + this.iedName = value; + } + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + return ldInst; + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取desc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesc() { + if (desc == null) { + return ""; + } else { + return desc; + } + } + + /** + * 设置desc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesc(String value) { + this.desc = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociationInitiator.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociationInitiator.java new file mode 100644 index 0000000..3781829 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociationInitiator.java @@ -0,0 +1,58 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tAssociationInitiator的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tAssociationInitiator">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}token">
+ *     <enumeration value="client"/>
+ *     <enumeration value="server"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tAssociationInitiator") +@XmlEnum +public enum TAssociationInitiator { + + @XmlEnumValue("client") + CLIENT("client"), + @XmlEnumValue("server") + SERVER("server"); + private final String value; + + TAssociationInitiator(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TAssociationInitiator fromValue(String v) { + for (TAssociationInitiator c: TAssociationInitiator.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociationKindEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociationKindEnum.java new file mode 100644 index 0000000..6db3c67 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAssociationKindEnum.java @@ -0,0 +1,58 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tAssociationKindEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tAssociationKindEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}token">
+ *     <enumeration value="pre-established"/>
+ *     <enumeration value="predefined"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tAssociationKindEnum") +@XmlEnum +public enum TAssociationKindEnum { + + @XmlEnumValue("pre-established") + PRE_ESTABLISHED("pre-established"), + @XmlEnumValue("predefined") + PREDEFINED("predefined"); + private final String value; + + TAssociationKindEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TAssociationKindEnum fromValue(String v) { + for (TAssociationKindEnum c: TAssociationKindEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAuthenticationEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAuthenticationEnum.java new file mode 100644 index 0000000..9e8fa27 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TAuthenticationEnum.java @@ -0,0 +1,67 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tAuthenticationEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tAuthenticationEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="none"/>
+ *     <enumeration value="password"/>
+ *     <enumeration value="weak"/>
+ *     <enumeration value="strong"/>
+ *     <enumeration value="certificate"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tAuthenticationEnum") +@XmlEnum +public enum TAuthenticationEnum { + + @XmlEnumValue("none") + NONE("none"), + @XmlEnumValue("password") + PASSWORD("password"), + @XmlEnumValue("weak") + WEAK("weak"), + @XmlEnumValue("strong") + STRONG("strong"), + @XmlEnumValue("certificate") + CERTIFICATE("certificate"); + private final String value; + + TAuthenticationEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TAuthenticationEnum fromValue(String v) { + for (TAuthenticationEnum c: TAuthenticationEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBDA.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBDA.java new file mode 100644 index 0000000..63a077f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBDA.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tBDA complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tBDA">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAbstractDataAttribute">
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tBDA") +public class TBDA + extends TAbstractDataAttribute +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBaseElement.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBaseElement.java new file mode 100644 index 0000000..29ab412 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBaseElement.java @@ -0,0 +1,176 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyAttribute; +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.namespace.QName; +import org.w3c.dom.Element; + + +/** + *

tBaseElement complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tBaseElement">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Text" type="{http://www.iec.ch/61850/2003/SCL}tText" minOccurs="0"/>
+ *         <element name="Private" type="{http://www.iec.ch/61850/2003/SCL}tPrivate" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tBaseElement", propOrder = { + "any", + "text", + "_private" +}) +@XmlSeeAlso({ + THeaderSclRef.class, + TIEDSclRef.class, + TMinRequestedSCDFiles.class, + TDORef.class, + TNaming.class, + TIDNaming.class, + SCL.class, + TUnNaming.class +}) +public abstract class TBaseElement { + + @XmlAnyElement(lax = true) + protected List any; + @XmlElement(name = "Text") + protected TText text; + @XmlElement(name = "Private") + protected List _private; + @XmlAnyAttribute + private Map otherAttributes = new HashMap(); + + /** + * Gets the value of the any property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the any property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getAny().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link Element } + * {@link Object } + * + * + */ + public List getAny() { + if (any == null) { + any = new ArrayList(); + } + return this.any; + } + + /** + * 获取text属性的值。 + * + * @return + * possible object is + * {@link TText } + * + */ + public TText getText() { + return text; + } + + /** + * 设置text属性的值。 + * + * @param value + * allowed object is + * {@link TText } + * + */ + public void setText(TText value) { + this.text = value; + } + + /** + * Gets the value of the private property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the private property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getPrivate().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TPrivate } + * + * + */ + public List getPrivate() { + if (_private == null) { + _private = new ArrayList(); + } + return this._private; + } + + /** + * Gets a map that contains attributes that aren't bound to any typed property on this class. + * + *

+ * the map is keyed by the name of the attribute and + * the value is the string value of the attribute. + * + * the map returned by this method is live, and you can add new attribute + * by updating the map directly. Because of this design, there's no setter. + * + * + * @return + * always non-null + */ + public Map getOtherAttributes() { + return otherAttributes; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBay.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBay.java new file mode 100644 index 0000000..312e4a0 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBay.java @@ -0,0 +1,145 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tBay complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tBay">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tEquipmentContainer">
+ *       <sequence>
+ *         <element name="ConductingEquipment" type="{http://www.iec.ch/61850/2003/SCL}tConductingEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="ConnectivityNode" type="{http://www.iec.ch/61850/2003/SCL}tConnectivityNode" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Function" type="{http://www.iec.ch/61850/2003/SCL}tFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tBay", propOrder = { + "conductingEquipment", + "connectivityNode", + "function" +}) +public class TBay + extends TEquipmentContainer +{ + + @XmlElement(name = "ConductingEquipment") + protected List conductingEquipment; + @XmlElement(name = "ConnectivityNode") + protected List connectivityNode; + @XmlElement(name = "Function") + protected List function; + + /** + * Gets the value of the conductingEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the conductingEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConductingEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConductingEquipment } + * + * + */ + public List getConductingEquipment() { + if (conductingEquipment == null) { + conductingEquipment = new ArrayList(); + } + return this.conductingEquipment; + } + + /** + * Gets the value of the connectivityNode property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the connectivityNode property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConnectivityNode().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConnectivityNode } + * + * + */ + public List getConnectivityNode() { + if (connectivityNode == null) { + connectivityNode = new ArrayList(); + } + return this.connectivityNode; + } + + /** + * Gets the value of the function property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the function property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TFunction } + * + * + */ + public List getFunction() { + if (function == null) { + function = new ArrayList(); + } + return this.function; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBitRateInMbPerSec.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBitRateInMbPerSec.java new file mode 100644 index 0000000..ac42d9b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TBitRateInMbPerSec.java @@ -0,0 +1,136 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tBitRateInMbPerSec complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tBitRateInMbPerSec">
+ *   <simpleContent>
+ *     <extension base="<http://www.w3.org/2001/XMLSchema>decimal">
+ *       <attribute name="unit" type="{http://www.w3.org/2001/XMLSchema}normalizedString" fixed="b/s" />
+ *       <attribute name="multiplier" type="{http://www.iec.ch/61850/2003/SCL}tUnitMultiplierEnum" fixed="M" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tBitRateInMbPerSec", propOrder = { + "value" +}) +public class TBitRateInMbPerSec { + + @XmlValue + protected BigDecimal value; + @XmlAttribute(name = "unit") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String unit; + @XmlAttribute(name = "multiplier") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String multiplier; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setValue(BigDecimal value) { + this.value = value; + } + + /** + * 获取unit属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUnit() { + if (unit == null) { + return "b/s"; + } else { + return unit; + } + } + + /** + * 设置unit属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUnit(String value) { + this.unit = value; + } + + /** + * 获取multiplier属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getMultiplier() { + if (multiplier == null) { + return "M"; + } else { + return multiplier; + } + } + + /** + * 设置multiplier属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMultiplier(String value) { + this.multiplier = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCert.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCert.java new file mode 100644 index 0000000..ff50032 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCert.java @@ -0,0 +1,110 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tCert complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tCert">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="commonName" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <minLength value="4"/>
+ *             <pattern value="none"/>
+ *             <pattern value="CN=.+"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="idHierarchy" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <minLength value="1"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tCert") +public class TCert { + + @XmlAttribute(name = "commonName", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String commonName; + @XmlAttribute(name = "idHierarchy", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String idHierarchy; + + /** + * 获取commonName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getCommonName() { + return commonName; + } + + /** + * 设置commonName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCommonName(String value) { + this.commonName = value; + } + + /** + * 获取idHierarchy属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdHierarchy() { + return idHierarchy; + } + + /** + * 设置idHierarchy属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdHierarchy(String value) { + this.idHierarchy = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCertificate.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCertificate.java new file mode 100644 index 0000000..c7bb0bc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCertificate.java @@ -0,0 +1,167 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tCertificate complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tCertificate">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tNaming">
+ *       <sequence>
+ *         <element name="Subject" type="{http://www.iec.ch/61850/2003/SCL}tCert"/>
+ *         <element name="IssuerName" type="{http://www.iec.ch/61850/2003/SCL}tCert"/>
+ *       </sequence>
+ *       <attribute name="xferNumber" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="serialNumber" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <minLength value="1"/>
+ *             <pattern value="[0-9]+"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tCertificate", propOrder = { + "subject", + "issuerName" +}) +public class TCertificate + extends TNaming +{ + + @XmlElement(name = "Subject", required = true) + protected TCert subject; + @XmlElement(name = "IssuerName", required = true) + protected TCert issuerName; + @XmlAttribute(name = "xferNumber") + @XmlSchemaType(name = "unsignedInt") + protected Long xferNumber; + @XmlAttribute(name = "serialNumber", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String serialNumber; + + /** + * 获取subject属性的值。 + * + * @return + * possible object is + * {@link TCert } + * + */ + public TCert getSubject() { + return subject; + } + + /** + * 设置subject属性的值。 + * + * @param value + * allowed object is + * {@link TCert } + * + */ + public void setSubject(TCert value) { + this.subject = value; + } + + /** + * 获取issuerName属性的值。 + * + * @return + * possible object is + * {@link TCert } + * + */ + public TCert getIssuerName() { + return issuerName; + } + + /** + * 设置issuerName属性的值。 + * + * @param value + * allowed object is + * {@link TCert } + * + */ + public void setIssuerName(TCert value) { + this.issuerName = value; + } + + /** + * 获取xferNumber属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getXferNumber() { + return xferNumber; + } + + /** + * 设置xferNumber属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setXferNumber(Long value) { + this.xferNumber = value; + } + + /** + * 获取serialNumber属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSerialNumber() { + return serialNumber; + } + + /** + * 设置serialNumber属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSerialNumber(String value) { + this.serialNumber = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TClientLN.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TClientLN.java new file mode 100644 index 0000000..ae58e37 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TClientLN.java @@ -0,0 +1,273 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tClientLN complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tClientLN">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agLNRef"/>
+ *       <attribute name="apRef" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tClientLN") +public class TClientLN { + + @XmlAttribute(name = "apRef", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String apRef; + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass", required = true) + protected List lnClass; + @XmlAttribute(name = "lnInst", required = true) + protected String lnInst; + @XmlAttribute(name = "lnUuid") + protected String lnUuid; + @XmlAttribute(name = "iedName", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String iedName; + @XmlAttribute(name = "ldInst", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldInst; + @XmlAttribute(name = "desc") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String desc; + + /** + * 获取apRef属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApRef() { + return apRef; + } + + /** + * 设置apRef属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApRef(String value) { + this.apRef = value; + } + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + if (prefix == null) { + return ""; + } else { + return prefix; + } + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取lnInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnInst() { + return lnInst; + } + + /** + * 设置lnInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnInst(String value) { + this.lnInst = value; + } + + /** + * 获取lnUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnUuid() { + return lnUuid; + } + + /** + * 设置lnUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnUuid(String value) { + this.lnUuid = value; + } + + /** + * 获取iedName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedName() { + return iedName; + } + + /** + * 设置iedName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedName(String value) { + this.iedName = value; + } + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + return ldInst; + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取desc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesc() { + if (desc == null) { + return ""; + } else { + return desc; + } + } + + /** + * 设置desc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesc(String value) { + this.desc = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TClientServices.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TClientServices.java new file mode 100644 index 0000000..d3b2a84 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TClientServices.java @@ -0,0 +1,623 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tClientServices complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tClientServices">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="TimeSyncProt" type="{http://www.iec.ch/61850/2003/SCL}tTimeSyncProt" minOccurs="0"/>
+ *         <element name="GOOSEMcSecurity" type="{http://www.iec.ch/61850/2003/SCL}tMcSecurity" minOccurs="0"/>
+ *         <element name="SVMcSecurity" type="{http://www.iec.ch/61850/2003/SCL}tMcSecurity" minOccurs="0"/>
+ *         <element name="Security" type="{http://www.iec.ch/61850/2003/SCL}tSecurity" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="goose" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="gsse" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="bufReport" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="unbufReport" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="readLog" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="sv" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="supportsLdName" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="maxAttributes">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="maxReports">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="maxGOOSE">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="maxSMV">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="rGOOSE" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="rSV" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="noIctBinding" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="acceptServerInitiatedAssociation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tClientServices", propOrder = { + "timeSyncProt", + "gooseMcSecurity", + "svMcSecurity", + "security" +}) +public class TClientServices { + + @XmlElement(name = "TimeSyncProt") + protected TTimeSyncProt timeSyncProt; + @XmlElement(name = "GOOSEMcSecurity") + protected TMcSecurity gooseMcSecurity; + @XmlElement(name = "SVMcSecurity") + protected TMcSecurity svMcSecurity; + @XmlElement(name = "Security") + protected TSecurity security; + @XmlAttribute(name = "goose") + protected Boolean goose; + @XmlAttribute(name = "gsse") + protected Boolean gsse; + @XmlAttribute(name = "bufReport") + protected Boolean bufReport; + @XmlAttribute(name = "unbufReport") + protected Boolean unbufReport; + @XmlAttribute(name = "readLog") + protected Boolean readLog; + @XmlAttribute(name = "sv") + protected Boolean sv; + @XmlAttribute(name = "supportsLdName") + protected Boolean supportsLdName; + @XmlAttribute(name = "maxAttributes") + protected Long maxAttributes; + @XmlAttribute(name = "maxReports") + protected Long maxReports; + @XmlAttribute(name = "maxGOOSE") + protected Long maxGOOSE; + @XmlAttribute(name = "maxSMV") + protected Long maxSMV; + @XmlAttribute(name = "rGOOSE") + protected Boolean rgoose; + @XmlAttribute(name = "rSV") + protected Boolean rsv; + @XmlAttribute(name = "noIctBinding") + protected Boolean noIctBinding; + @XmlAttribute(name = "acceptServerInitiatedAssociation") + protected Boolean acceptServerInitiatedAssociation; + + /** + * 获取timeSyncProt属性的值。 + * + * @return + * possible object is + * {@link TTimeSyncProt } + * + */ + public TTimeSyncProt getTimeSyncProt() { + return timeSyncProt; + } + + /** + * 设置timeSyncProt属性的值。 + * + * @param value + * allowed object is + * {@link TTimeSyncProt } + * + */ + public void setTimeSyncProt(TTimeSyncProt value) { + this.timeSyncProt = value; + } + + /** + * 获取gooseMcSecurity属性的值。 + * + * @return + * possible object is + * {@link TMcSecurity } + * + */ + public TMcSecurity getGOOSEMcSecurity() { + return gooseMcSecurity; + } + + /** + * 设置gooseMcSecurity属性的值。 + * + * @param value + * allowed object is + * {@link TMcSecurity } + * + */ + public void setGOOSEMcSecurity(TMcSecurity value) { + this.gooseMcSecurity = value; + } + + /** + * 获取svMcSecurity属性的值。 + * + * @return + * possible object is + * {@link TMcSecurity } + * + */ + public TMcSecurity getSVMcSecurity() { + return svMcSecurity; + } + + /** + * 设置svMcSecurity属性的值。 + * + * @param value + * allowed object is + * {@link TMcSecurity } + * + */ + public void setSVMcSecurity(TMcSecurity value) { + this.svMcSecurity = value; + } + + /** + * 获取security属性的值。 + * + * @return + * possible object is + * {@link TSecurity } + * + */ + public TSecurity getSecurity() { + return security; + } + + /** + * 设置security属性的值。 + * + * @param value + * allowed object is + * {@link TSecurity } + * + */ + public void setSecurity(TSecurity value) { + this.security = value; + } + + /** + * 获取goose属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isGoose() { + if (goose == null) { + return false; + } else { + return goose; + } + } + + /** + * 设置goose属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setGoose(Boolean value) { + this.goose = value; + } + + /** + * 获取gsse属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isGsse() { + if (gsse == null) { + return false; + } else { + return gsse; + } + } + + /** + * 设置gsse属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setGsse(Boolean value) { + this.gsse = value; + } + + /** + * 获取bufReport属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isBufReport() { + if (bufReport == null) { + return false; + } else { + return bufReport; + } + } + + /** + * 设置bufReport属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setBufReport(Boolean value) { + this.bufReport = value; + } + + /** + * 获取unbufReport属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isUnbufReport() { + if (unbufReport == null) { + return false; + } else { + return unbufReport; + } + } + + /** + * 设置unbufReport属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setUnbufReport(Boolean value) { + this.unbufReport = value; + } + + /** + * 获取readLog属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isReadLog() { + if (readLog == null) { + return false; + } else { + return readLog; + } + } + + /** + * 设置readLog属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setReadLog(Boolean value) { + this.readLog = value; + } + + /** + * 获取sv属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSv() { + if (sv == null) { + return false; + } else { + return sv; + } + } + + /** + * 设置sv属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSv(Boolean value) { + this.sv = value; + } + + /** + * 获取supportsLdName属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSupportsLdName() { + if (supportsLdName == null) { + return false; + } else { + return supportsLdName; + } + } + + /** + * 设置supportsLdName属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSupportsLdName(Boolean value) { + this.supportsLdName = value; + } + + /** + * 获取maxAttributes属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getMaxAttributes() { + return maxAttributes; + } + + /** + * 设置maxAttributes属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMaxAttributes(Long value) { + this.maxAttributes = value; + } + + /** + * 获取maxReports属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getMaxReports() { + return maxReports; + } + + /** + * 设置maxReports属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMaxReports(Long value) { + this.maxReports = value; + } + + /** + * 获取maxGOOSE属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getMaxGOOSE() { + return maxGOOSE; + } + + /** + * 设置maxGOOSE属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMaxGOOSE(Long value) { + this.maxGOOSE = value; + } + + /** + * 获取maxSMV属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getMaxSMV() { + return maxSMV; + } + + /** + * 设置maxSMV属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMaxSMV(Long value) { + this.maxSMV = value; + } + + /** + * 获取rgoose属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isRGOOSE() { + if (rgoose == null) { + return false; + } else { + return rgoose; + } + } + + /** + * 设置rgoose属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRGOOSE(Boolean value) { + this.rgoose = value; + } + + /** + * 获取rsv属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isRSV() { + if (rsv == null) { + return false; + } else { + return rsv; + } + } + + /** + * 设置rsv属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRSV(Boolean value) { + this.rsv = value; + } + + /** + * 获取noIctBinding属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isNoIctBinding() { + if (noIctBinding == null) { + return false; + } else { + return noIctBinding; + } + } + + /** + * 设置noIctBinding属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setNoIctBinding(Boolean value) { + this.noIctBinding = value; + } + + /** + * 获取acceptServerInitiatedAssociation属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isAcceptServerInitiatedAssociation() { + if (acceptServerInitiatedAssociation == null) { + return false; + } else { + return acceptServerInitiatedAssociation; + } + } + + /** + * 设置acceptServerInitiatedAssociation属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setAcceptServerInitiatedAssociation(Boolean value) { + this.acceptServerInitiatedAssociation = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCommProt.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCommProt.java new file mode 100644 index 0000000..78f5161 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCommProt.java @@ -0,0 +1,71 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tCommProt complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tCommProt">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+ *       <attribute name="ipv6" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tCommProt") +public class TCommProt + extends TServiceYesNo +{ + + @XmlAttribute(name = "ipv6") + protected Boolean ipv6; + + /** + * 获取ipv6属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isIpv6() { + if (ipv6 == null) { + return false; + } else { + return ipv6; + } + } + + /** + * 设置ipv6属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setIpv6(Boolean value) { + this.ipv6 = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCommunication.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCommunication.java new file mode 100644 index 0000000..5a58e2a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TCommunication.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tCommunication complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tCommunication">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="SubNetwork" type="{http://www.iec.ch/61850/2003/SCL}tSubNetwork" maxOccurs="unbounded"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tCommunication", propOrder = { + "subNetwork" +}) +public class TCommunication + extends TUnNaming +{ + + @XmlElement(name = "SubNetwork", required = true) + protected List subNetwork; + + /** + * Gets the value of the subNetwork property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the subNetwork property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubNetwork().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubNetwork } + * + * + */ + public List getSubNetwork() { + if (subNetwork == null) { + subNetwork = new ArrayList(); + } + return this.subNetwork; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConductingEquipment.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConductingEquipment.java new file mode 100644 index 0000000..e8c6b68 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConductingEquipment.java @@ -0,0 +1,107 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tConductingEquipment complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tConductingEquipment">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAbstractConductingEquipment">
+ *       <sequence>
+ *         <element name="EqFunction" type="{http://www.iec.ch/61850/2003/SCL}tEqFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tCommonConductingEquipmentEnum" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tConductingEquipment", propOrder = { + "eqFunction" +}) +public class TConductingEquipment + extends TAbstractConductingEquipment +{ + + @XmlElement(name = "EqFunction") + protected List eqFunction; + @XmlAttribute(name = "type", required = true) + protected String type; + + /** + * Gets the value of the eqFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the eqFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEqFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEqFunction } + * + * + */ + public List getEqFunction() { + if (eqFunction == null) { + eqFunction = new ArrayList(); + } + return this.eqFunction; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConfLNs.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConfLNs.java new file mode 100644 index 0000000..4a988ad --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConfLNs.java @@ -0,0 +1,100 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tConfLNs complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tConfLNs">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="fixPrefix" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="fixLnInst" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tConfLNs") +public class TConfLNs { + + @XmlAttribute(name = "fixPrefix") + protected Boolean fixPrefix; + @XmlAttribute(name = "fixLnInst") + protected Boolean fixLnInst; + + /** + * 获取fixPrefix属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isFixPrefix() { + if (fixPrefix == null) { + return false; + } else { + return fixPrefix; + } + } + + /** + * 设置fixPrefix属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setFixPrefix(Boolean value) { + this.fixPrefix = value; + } + + /** + * 获取fixLnInst属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isFixLnInst() { + if (fixLnInst == null) { + return false; + } else { + return fixLnInst; + } + } + + /** + * 设置fixLnInst属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setFixLnInst(Boolean value) { + this.fixLnInst = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConnectedAP.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConnectedAP.java new file mode 100644 index 0000000..e79405c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConnectedAP.java @@ -0,0 +1,287 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tConnectedAP complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tConnectedAP">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Address" type="{http://www.iec.ch/61850/2003/SCL}tAddress" minOccurs="0"/>
+ *         <element name="GSE" type="{http://www.iec.ch/61850/2003/SCL}tGSE" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="SMV" type="{http://www.iec.ch/61850/2003/SCL}tSMV" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="PhysConn" type="{http://www.iec.ch/61850/2003/SCL}tPhysConn" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="iedName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tIEDName" />
+ *       <attribute name="apName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *       <attribute name="redProt" type="{http://www.iec.ch/61850/2003/SCL}tRedProtEnum" />
+ *       <attribute name="apUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tConnectedAP", propOrder = { + "address", + "gse", + "smv", + "physConn" +}) +public class TConnectedAP + extends TUnNaming +{ + + @XmlElement(name = "Address") + protected TAddress address; + @XmlElement(name = "GSE") + protected List gse; + @XmlElement(name = "SMV") + protected List smv; + @XmlElement(name = "PhysConn") + protected List physConn; + @XmlAttribute(name = "iedName", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String iedName; + @XmlAttribute(name = "apName", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String apName; + @XmlAttribute(name = "redProt") + protected TRedProtEnum redProt; + @XmlAttribute(name = "apUuid") + protected String apUuid; + + /** + * 获取address属性的值。 + * + * @return + * possible object is + * {@link TAddress } + * + */ + public TAddress getAddress() { + return address; + } + + /** + * 设置address属性的值。 + * + * @param value + * allowed object is + * {@link TAddress } + * + */ + public void setAddress(TAddress value) { + this.address = value; + } + + /** + * Gets the value of the gse property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gse property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGSE().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TGSE } + * + * + */ + public List getGSE() { + if (gse == null) { + gse = new ArrayList(); + } + return this.gse; + } + + /** + * Gets the value of the smv property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the smv property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSMV().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSMV } + * + * + */ + public List getSMV() { + if (smv == null) { + smv = new ArrayList(); + } + return this.smv; + } + + /** + * Gets the value of the physConn property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the physConn property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getPhysConn().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TPhysConn } + * + * + */ + public List getPhysConn() { + if (physConn == null) { + physConn = new ArrayList(); + } + return this.physConn; + } + + /** + * 获取iedName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedName() { + return iedName; + } + + /** + * 设置iedName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedName(String value) { + this.iedName = value; + } + + /** + * 获取apName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApName() { + return apName; + } + + /** + * 设置apName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApName(String value) { + this.apName = value; + } + + /** + * 获取redProt属性的值。 + * + * @return + * possible object is + * {@link TRedProtEnum } + * + */ + public TRedProtEnum getRedProt() { + return redProt; + } + + /** + * 设置redProt属性的值。 + * + * @param value + * allowed object is + * {@link TRedProtEnum } + * + */ + public void setRedProt(TRedProtEnum value) { + this.redProt = value; + } + + /** + * 获取apUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApUuid() { + return apUuid; + } + + /** + * 设置apUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApUuid(String value) { + this.apUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConnectivityNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConnectivityNode.java new file mode 100644 index 0000000..bb7b3f2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TConnectivityNode.java @@ -0,0 +1,71 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tConnectivityNode complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tConnectivityNode">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tLNodeContainer">
+ *       <attribute name="pathName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tConnectivityNodeReference" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tConnectivityNode") +public class TConnectivityNode + extends TLNodeContainer +{ + + @XmlAttribute(name = "pathName", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String pathName; + + /** + * 获取pathName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPathName() { + return pathName; + } + + /** + * 设置pathName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPathName(String value) { + this.pathName = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControl.java new file mode 100644 index 0000000..23a5e8b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControl.java @@ -0,0 +1,157 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tCBName" />
+ *       <attribute name="datSet" type="{http://www.iec.ch/61850/2003/SCL}tDataSetName" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tControl") +@XmlSeeAlso({ + TControlWithTriggerOpt.class, + TControlWithIEDName.class +}) +public abstract class TControl + extends TUnNaming +{ + + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String name; + @XmlAttribute(name = "datSet") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String datSet; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取datSet属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDatSet() { + return datSet; + } + + /** + * 设置datSet属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDatSet(String value) { + this.datSet = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlBlock.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlBlock.java new file mode 100644 index 0000000..fc8d4cf --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlBlock.java @@ -0,0 +1,164 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tControlBlock complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tControlBlock">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Address" type="{http://www.iec.ch/61850/2003/SCL}tAddress" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="ldInst" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+ *       <attribute name="cbName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tCBName" />
+ *       <attribute name="cbUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tControlBlock", propOrder = { + "address" +}) +@XmlSeeAlso({ + TGSE.class, + TSMV.class +}) +public abstract class TControlBlock + extends TUnNaming +{ + + @XmlElement(name = "Address") + protected TAddress address; + @XmlAttribute(name = "ldInst", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldInst; + @XmlAttribute(name = "cbName", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String cbName; + @XmlAttribute(name = "cbUuid") + protected String cbUuid; + + /** + * 获取address属性的值。 + * + * @return + * possible object is + * {@link TAddress } + * + */ + public TAddress getAddress() { + return address; + } + + /** + * 设置address属性的值。 + * + * @param value + * allowed object is + * {@link TAddress } + * + */ + public void setAddress(TAddress value) { + this.address = value; + } + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + return ldInst; + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取cbName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getCbName() { + return cbName; + } + + /** + * 设置cbName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCbName(String value) { + this.cbName = value; + } + + /** + * 获取cbUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getCbUuid() { + return cbUuid; + } + + /** + * 设置cbUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCbUuid(String value) { + this.cbUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlWithIEDName.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlWithIEDName.java new file mode 100644 index 0000000..b51f584 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlWithIEDName.java @@ -0,0 +1,411 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tControlWithIEDName complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tControlWithIEDName">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControl">
+ *       <sequence>
+ *         <element name="IEDName" maxOccurs="unbounded" minOccurs="0">
+ *           <complexType>
+ *             <simpleContent>
+ *               <extension base="<http://www.iec.ch/61850/2003/SCL>tIEDName">
+ *                 <attribute name="apRef" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *                 <attribute name="ldInst" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+ *                 <attribute name="prefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" />
+ *                 <attribute name="lnClass" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *                 <attribute name="lnInst" type="{http://www.iec.ch/61850/2003/SCL}tLNInst" />
+ *                 <attribute name="apUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *                 <attribute name="ldUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *                 <attribute name="lnUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *               </extension>
+ *             </simpleContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="confRev" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tControlWithIEDName", propOrder = { + "iedName" +}) +@XmlSeeAlso({ + TGSEControl.class, + TSampledValueControl.class +}) +public class TControlWithIEDName + extends TControl +{ + + @XmlElement(name = "IEDName") + protected List iedName; + @XmlAttribute(name = "confRev") + @XmlSchemaType(name = "unsignedInt") + protected Long confRev; + + /** + * Gets the value of the iedName property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the iedName property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getIEDName().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TControlWithIEDName.IEDName } + * + * + */ + public List getIEDName() { + if (iedName == null) { + iedName = new ArrayList(); + } + return this.iedName; + } + + /** + * 获取confRev属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getConfRev() { + return confRev; + } + + /** + * 设置confRev属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setConfRev(Long value) { + this.confRev = value; + } + + + /** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+     * <complexType>
+     *   <simpleContent>
+     *     <extension base="<http://www.iec.ch/61850/2003/SCL>tIEDName">
+     *       <attribute name="apRef" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+     *       <attribute name="ldInst" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+     *       <attribute name="prefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" />
+     *       <attribute name="lnClass" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+     *       <attribute name="lnInst" type="{http://www.iec.ch/61850/2003/SCL}tLNInst" />
+     *       <attribute name="apUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+     *       <attribute name="ldUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+     *       <attribute name="lnUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+     *     </extension>
+     *   </simpleContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class IEDName { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String value; + @XmlAttribute(name = "apRef", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String apRef; + @XmlAttribute(name = "ldInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldInst; + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass") + protected List lnClass; + @XmlAttribute(name = "lnInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String lnInst; + @XmlAttribute(name = "apUuid") + protected String apUuid; + @XmlAttribute(name = "ldUuid") + protected String ldUuid; + @XmlAttribute(name = "lnUuid") + protected String lnUuid; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取apRef属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApRef() { + return apRef; + } + + /** + * 设置apRef属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApRef(String value) { + this.apRef = value; + } + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + return ldInst; + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + return prefix; + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+         *    getLnClass().add(newItem);
+         * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取lnInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnInst() { + return lnInst; + } + + /** + * 设置lnInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnInst(String value) { + this.lnInst = value; + } + + /** + * 获取apUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApUuid() { + return apUuid; + } + + /** + * 设置apUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApUuid(String value) { + this.apUuid = value; + } + + /** + * 获取ldUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdUuid() { + return ldUuid; + } + + /** + * 设置ldUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdUuid(String value) { + this.ldUuid = value; + } + + /** + * 获取lnUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnUuid() { + return lnUuid; + } + + /** + * 设置lnUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnUuid(String value) { + this.lnUuid = value; + } + + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlWithTriggerOpt.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlWithTriggerOpt.java new file mode 100644 index 0000000..153cb8f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TControlWithTriggerOpt.java @@ -0,0 +1,111 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tControlWithTriggerOpt complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tControlWithTriggerOpt">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControl">
+ *       <sequence>
+ *         <element name="TrgOps" type="{http://www.iec.ch/61850/2003/SCL}tTrgOps" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="intgPd" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" default="0" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tControlWithTriggerOpt", propOrder = { + "trgOps" +}) +@XmlSeeAlso({ + TReportControl.class, + TLogControl.class +}) +public abstract class TControlWithTriggerOpt + extends TControl +{ + + @XmlElement(name = "TrgOps") + protected TTrgOps trgOps; + @XmlAttribute(name = "intgPd") + @XmlSchemaType(name = "unsignedInt") + protected Long intgPd; + + /** + * 获取trgOps属性的值。 + * + * @return + * possible object is + * {@link TTrgOps } + * + */ + public TTrgOps getTrgOps() { + return trgOps; + } + + /** + * 设置trgOps属性的值。 + * + * @param value + * allowed object is + * {@link TTrgOps } + * + */ + public void setTrgOps(TTrgOps value) { + this.trgOps = value; + } + + /** + * 获取intgPd属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public long getIntgPd() { + if (intgPd == null) { + return 0L; + } else { + return intgPd; + } + } + + /** + * 设置intgPd属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setIntgPd(Long value) { + this.intgPd = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDA.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDA.java new file mode 100644 index 0000000..0c6141b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDA.java @@ -0,0 +1,198 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDA complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDA">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAbstractDataAttribute">
+ *       <sequence>
+ *         <element name="ProtNs" type="{http://www.iec.ch/61850/2003/SCL}tProtNs" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agDATrgOp"/>
+ *       <attribute name="fc" use="required" type="{http://www.iec.ch/61850/2003/SCL}tFCEnum" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDA", propOrder = { + "protNs" +}) +public class TDA + extends TAbstractDataAttribute +{ + + @XmlElement(name = "ProtNs") + protected List protNs; + @XmlAttribute(name = "fc", required = true) + protected String fc; + @XmlAttribute(name = "dchg") + protected Boolean dchg; + @XmlAttribute(name = "qchg") + protected Boolean qchg; + @XmlAttribute(name = "dupd") + protected Boolean dupd; + + /** + * Gets the value of the protNs property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the protNs property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getProtNs().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TProtNs } + * + * + */ + public List getProtNs() { + if (protNs == null) { + protNs = new ArrayList(); + } + return this.protNs; + } + + /** + * 获取fc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getFc() { + return fc; + } + + /** + * 设置fc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFc(String value) { + this.fc = value; + } + + /** + * 获取dchg属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDchg() { + if (dchg == null) { + return false; + } else { + return dchg; + } + } + + /** + * 设置dchg属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDchg(Boolean value) { + this.dchg = value; + } + + /** + * 获取qchg属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isQchg() { + if (qchg == null) { + return false; + } else { + return qchg; + } + } + + /** + * 设置qchg属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setQchg(Boolean value) { + this.qchg = value; + } + + /** + * 获取dupd属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDupd() { + if (dupd == null) { + return false; + } else { + return dupd; + } + } + + /** + * 设置dupd属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDupd(Boolean value) { + this.dupd = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDAI.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDAI.java new file mode 100644 index 0000000..acc41f7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDAI.java @@ -0,0 +1,254 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDAI complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDAI">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Val" type="{http://www.iec.ch/61850/2003/SCL}tVal" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAttributeNameEnum" />
+ *       <attribute name="sAddr">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <maxLength value="255"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="valKind" type="{http://www.iec.ch/61850/2003/SCL}tValKindEnum" />
+ *       <attribute name="ix" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="valImport" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDAI", propOrder = { + "val", + "labels" +}) +public class TDAI + extends TUnNaming +{ + + @XmlElement(name = "Val") + protected List val; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + protected String name; + @XmlAttribute(name = "sAddr") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String sAddr; + @XmlAttribute(name = "valKind") + protected TValKindEnum valKind; + @XmlAttribute(name = "ix") + @XmlSchemaType(name = "unsignedInt") + protected Long ix; + @XmlAttribute(name = "valImport") + protected Boolean valImport; + + /** + * Gets the value of the val property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the val property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getVal().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TVal } + * + * + */ + public List getVal() { + if (val == null) { + val = new ArrayList(); + } + return this.val; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取sAddr属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSAddr() { + return sAddr; + } + + /** + * 设置sAddr属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSAddr(String value) { + this.sAddr = value; + } + + /** + * 获取valKind属性的值。 + * + * @return + * possible object is + * {@link TValKindEnum } + * + */ + public TValKindEnum getValKind() { + return valKind; + } + + /** + * 设置valKind属性的值。 + * + * @param value + * allowed object is + * {@link TValKindEnum } + * + */ + public void setValKind(TValKindEnum value) { + this.valKind = value; + } + + /** + * 获取ix属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getIx() { + return ix; + } + + /** + * 设置ix属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setIx(Long value) { + this.ix = value; + } + + /** + * 获取valImport属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isValImport() { + return valImport; + } + + /** + * 设置valImport属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setValImport(Boolean value) { + this.valImport = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDAType.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDAType.java new file mode 100644 index 0000000..30c6c12 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDAType.java @@ -0,0 +1,175 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDAType complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDAType">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tIDNaming">
+ *       <sequence>
+ *         <element name="BDA" type="{http://www.iec.ch/61850/2003/SCL}tBDA" maxOccurs="unbounded"/>
+ *         <element name="ProtNs" type="{http://www.iec.ch/61850/2003/SCL}tProtNs" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="iedType" type="{http://www.iec.ch/61850/2003/SCL}tAnyName" default="" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDAType", propOrder = { + "bda", + "protNs", + "labels" +}) +public class TDAType + extends TIDNaming +{ + + @XmlElement(name = "BDA", required = true) + protected List bda; + @XmlElement(name = "ProtNs") + protected List protNs; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "iedType") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String iedType; + + /** + * Gets the value of the bda property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the bda property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getBDA().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TBDA } + * + * + */ + public List getBDA() { + if (bda == null) { + bda = new ArrayList(); + } + return this.bda; + } + + /** + * Gets the value of the protNs property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the protNs property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getProtNs().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TProtNs } + * + * + */ + public List getProtNs() { + if (protNs == null) { + protNs = new ArrayList(); + } + return this.protNs; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取iedType属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedType() { + if (iedType == null) { + return ""; + } else { + return iedType; + } + } + + /** + * 设置iedType属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedType(String value) { + this.iedType = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDO.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDO.java new file mode 100644 index 0000000..535ec34 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDO.java @@ -0,0 +1,193 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDO complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDO">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tDataName" />
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="accessControl" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="transient" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDO", propOrder = { + "labels" +}) +public class TDO + extends TUnNaming +{ + + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String name; + @XmlAttribute(name = "type", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String type; + @XmlAttribute(name = "accessControl") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String accessControl; + @XmlAttribute(name = "transient") + protected Boolean _transient; + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * 获取accessControl属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getAccessControl() { + return accessControl; + } + + /** + * 设置accessControl属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAccessControl(String value) { + this.accessControl = value; + } + + /** + * 获取transient属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isTransient() { + if (_transient == null) { + return false; + } else { + return _transient; + } + } + + /** + * 设置transient属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setTransient(Boolean value) { + this._transient = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDOI.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDOI.java new file mode 100644 index 0000000..024958f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDOI.java @@ -0,0 +1,205 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElements; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDOI complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDOI">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <choice maxOccurs="unbounded" minOccurs="0">
+ *           <element name="SDI" type="{http://www.iec.ch/61850/2003/SCL}tSDI"/>
+ *           <element name="DAI" type="{http://www.iec.ch/61850/2003/SCL}tDAI"/>
+ *         </choice>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tDataName" />
+ *       <attribute name="ix" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="accessControl" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDOI", propOrder = { + "sdiOrDAI", + "labels" +}) +public class TDOI + extends TUnNaming +{ + + @XmlElements({ + @XmlElement(name = "SDI", type = TSDI.class), + @XmlElement(name = "DAI", type = TDAI.class) + }) + protected List sdiOrDAI; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String name; + @XmlAttribute(name = "ix") + @XmlSchemaType(name = "unsignedInt") + protected Long ix; + @XmlAttribute(name = "accessControl") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String accessControl; + + /** + * Gets the value of the sdiOrDAI property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the sdiOrDAI property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSDIOrDAI().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSDI } + * {@link TDAI } + * + * + */ + public List getSDIOrDAI() { + if (sdiOrDAI == null) { + sdiOrDAI = new ArrayList(); + } + return this.sdiOrDAI; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取ix属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getIx() { + return ix; + } + + /** + * 设置ix属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setIx(Long value) { + this.ix = value; + } + + /** + * 获取accessControl属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getAccessControl() { + return accessControl; + } + + /** + * 设置accessControl属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAccessControl(String value) { + this.accessControl = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDORef.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDORef.java new file mode 100644 index 0000000..d93e136 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDORef.java @@ -0,0 +1,395 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDORef complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDORef">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agDesc"/>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="iedName" type="{http://www.iec.ch/61850/2003/SCL}tIEDNameOrRelative" />
+ *       <attribute name="ldInst" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+ *       <attribute name="prefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" />
+ *       <attribute name="lnClass" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *       <attribute name="lnInst" type="{http://www.iec.ch/61850/2003/SCL}tLNInst" />
+ *       <attribute name="doName" type="{http://www.iec.ch/61850/2003/SCL}tFullDOName" />
+ *       <attribute name="pLN" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *       <attribute name="pDO" type="{http://www.iec.ch/61850/2003/SCL}tFullDOName" />
+ *       <attribute name="lnUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDORef") +@XmlSeeAlso({ + TExtRef.class, + TExtCtrl.class +}) +public abstract class TDORef + extends TBaseElement +{ + + @XmlAttribute(name = "iedName") + protected String iedName; + @XmlAttribute(name = "ldInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldInst; + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass") + protected List lnClass; + @XmlAttribute(name = "lnInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String lnInst; + @XmlAttribute(name = "doName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String doName; + @XmlAttribute(name = "pLN") + protected List pln; + @XmlAttribute(name = "pDO") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String pdo; + @XmlAttribute(name = "lnUuid") + protected String lnUuid; + @XmlAttribute(name = "desc") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String desc; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * 获取iedName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedName() { + return iedName; + } + + /** + * 设置iedName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedName(String value) { + this.iedName = value; + } + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + return ldInst; + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + return prefix; + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取lnInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnInst() { + return lnInst; + } + + /** + * 设置lnInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnInst(String value) { + this.lnInst = value; + } + + /** + * 获取doName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDoName() { + return doName; + } + + /** + * 设置doName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDoName(String value) { + this.doName = value; + } + + /** + * Gets the value of the pln property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the pln property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getPLN().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getPLN() { + if (pln == null) { + pln = new ArrayList(); + } + return this.pln; + } + + /** + * 获取pdo属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPDO() { + return pdo; + } + + /** + * 设置pdo属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPDO(String value) { + this.pdo = value; + } + + /** + * 获取lnUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnUuid() { + return lnUuid; + } + + /** + * 设置lnUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnUuid(String value) { + this.lnUuid = value; + } + + /** + * 获取desc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesc() { + if (desc == null) { + return ""; + } else { + return desc; + } + } + + /** + * 设置desc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesc(String value) { + this.desc = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDOType.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDOType.java new file mode 100644 index 0000000..1a3d799 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDOType.java @@ -0,0 +1,177 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElements; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDOType complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDOType">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tIDNaming">
+ *       <sequence>
+ *         <choice maxOccurs="unbounded" minOccurs="0">
+ *           <element name="SDO" type="{http://www.iec.ch/61850/2003/SCL}tSDO"/>
+ *           <element name="DA" type="{http://www.iec.ch/61850/2003/SCL}tDA"/>
+ *         </choice>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="iedType" type="{http://www.iec.ch/61850/2003/SCL}tAnyName" default="" />
+ *       <attribute name="cdc" use="required" type="{http://www.iec.ch/61850/2003/SCL}tCDCEnum" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDOType", propOrder = { + "sdoOrDA", + "labels" +}) +public class TDOType + extends TIDNaming +{ + + @XmlElements({ + @XmlElement(name = "SDO", type = TSDO.class), + @XmlElement(name = "DA", type = TDA.class) + }) + protected List sdoOrDA; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "iedType") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String iedType; + @XmlAttribute(name = "cdc", required = true) + protected String cdc; + + /** + * Gets the value of the sdoOrDA property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the sdoOrDA property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSDOOrDA().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSDO } + * {@link TDA } + * + * + */ + public List getSDOOrDA() { + if (sdoOrDA == null) { + sdoOrDA = new ArrayList(); + } + return this.sdoOrDA; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取iedType属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedType() { + if (iedType == null) { + return ""; + } else { + return iedType; + } + } + + /** + * 设置iedType属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedType(String value) { + this.iedType = value; + } + + /** + * 获取cdc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getCdc() { + return cdc; + } + + /** + * 设置cdc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCdc(String value) { + this.cdc = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDataSet.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDataSet.java new file mode 100644 index 0000000..8b4c936 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDataSet.java @@ -0,0 +1,163 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDataSet complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDataSet">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <choice maxOccurs="unbounded">
+ *         <element name="FCDA" type="{http://www.iec.ch/61850/2003/SCL}tFCDA"/>
+ *       </choice>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tDataSetName" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDataSet", propOrder = { + "fcda" +}) +public class TDataSet + extends TUnNaming +{ + + @XmlElement(name = "FCDA") + protected List fcda; + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String name; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * Gets the value of the fcda property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the fcda property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getFCDA().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TFCDA } + * + * + */ + public List getFCDA() { + if (fcda == null) { + fcda = new ArrayList(); + } + return this.fcda; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDataTypeTemplates.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDataTypeTemplates.java new file mode 100644 index 0000000..8d8b53d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDataTypeTemplates.java @@ -0,0 +1,175 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDataTypeTemplates complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDataTypeTemplates">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="LNodeType" type="{http://www.iec.ch/61850/2003/SCL}tLNodeType" maxOccurs="unbounded"/>
+ *         <element name="DOType" type="{http://www.iec.ch/61850/2003/SCL}tDOType" maxOccurs="unbounded"/>
+ *         <element name="DAType" type="{http://www.iec.ch/61850/2003/SCL}tDAType" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="EnumType" type="{http://www.iec.ch/61850/2003/SCL}tEnumType" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDataTypeTemplates", propOrder = { + "lNodeType", + "doType", + "daType", + "enumType" +}) +public class TDataTypeTemplates { + + @XmlElement(name = "LNodeType", required = true) + protected List lNodeType; + @XmlElement(name = "DOType", required = true) + protected List doType; + @XmlElement(name = "DAType") + protected List daType; + @XmlElement(name = "EnumType") + protected List enumType; + + /** + * Gets the value of the lNodeType property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lNodeType property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLNodeType().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLNodeType } + * + * + */ + public List getLNodeType() { + if (lNodeType == null) { + lNodeType = new ArrayList(); + } + return this.lNodeType; + } + + /** + * Gets the value of the doType property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the doType property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getDOType().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TDOType } + * + * + */ + public List getDOType() { + if (doType == null) { + doType = new ArrayList(); + } + return this.doType; + } + + /** + * Gets the value of the daType property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the daType property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getDAType().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TDAType } + * + * + */ + public List getDAType() { + if (daType == null) { + daType = new ArrayList(); + } + return this.daType; + } + + /** + * Gets the value of the enumType property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the enumType property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEnumType().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEnumType } + * + * + */ + public List getEnumType() { + if (enumType == null) { + enumType = new ArrayList(); + } + return this.enumType; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupAEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupAEnum.java new file mode 100644 index 0000000..417663e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupAEnum.java @@ -0,0 +1,53 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupAEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupAEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="A[A-Z]*"/>
+ *     <enumeration value="ANCR"/>
+ *     <enumeration value="ARCO"/>
+ *     <enumeration value="ARIS"/>
+ *     <enumeration value="ATCC"/>
+ *     <enumeration value="AVCO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupAEnum") +@XmlEnum +public enum TDomainLNGroupAEnum { + + ANCR, + ARCO, + ARIS, + ATCC, + AVCO; + + public String value() { + return name(); + } + + public static TDomainLNGroupAEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupCEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupCEnum.java new file mode 100644 index 0000000..bf6b5b3 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupCEnum.java @@ -0,0 +1,55 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupCEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupCEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="C[A-Z]*"/>
+ *     <enumeration value="CALH"/>
+ *     <enumeration value="CCGR"/>
+ *     <enumeration value="CILO"/>
+ *     <enumeration value="CPOW"/>
+ *     <enumeration value="CSWI"/>
+ *     <enumeration value="CSYN"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupCEnum") +@XmlEnum +public enum TDomainLNGroupCEnum { + + CALH, + CCGR, + CILO, + CPOW, + CSWI, + CSYN; + + public String value() { + return name(); + } + + public static TDomainLNGroupCEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupFEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupFEnum.java new file mode 100644 index 0000000..d2c64f2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupFEnum.java @@ -0,0 +1,61 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupFEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupFEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="F[A-Z]*"/>
+ *     <enumeration value="FCNT"/>
+ *     <enumeration value="FCSD"/>
+ *     <enumeration value="FFIL"/>
+ *     <enumeration value="FLIM"/>
+ *     <enumeration value="FPID"/>
+ *     <enumeration value="FRMP"/>
+ *     <enumeration value="FSPT"/>
+ *     <enumeration value="FXOT"/>
+ *     <enumeration value="FXUT"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupFEnum") +@XmlEnum +public enum TDomainLNGroupFEnum { + + FCNT, + FCSD, + FFIL, + FLIM, + FPID, + FRMP, + FSPT, + FXOT, + FXUT; + + public String value() { + return name(); + } + + public static TDomainLNGroupFEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupGEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupGEnum.java new file mode 100644 index 0000000..c9d0fbd --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupGEnum.java @@ -0,0 +1,51 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupGEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupGEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="G[A-Z]*"/>
+ *     <enumeration value="GAPC"/>
+ *     <enumeration value="GGIO"/>
+ *     <enumeration value="GLOG"/>
+ *     <enumeration value="GSAL"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupGEnum") +@XmlEnum +public enum TDomainLNGroupGEnum { + + GAPC, + GGIO, + GLOG, + GSAL; + + public String value() { + return name(); + } + + public static TDomainLNGroupGEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupIEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupIEnum.java new file mode 100644 index 0000000..da62edd --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupIEnum.java @@ -0,0 +1,55 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupIEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupIEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="I[A-Z]*"/>
+ *     <enumeration value="IARC"/>
+ *     <enumeration value="IHMI"/>
+ *     <enumeration value="ISAF"/>
+ *     <enumeration value="ITCI"/>
+ *     <enumeration value="ITMI"/>
+ *     <enumeration value="ITPC"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupIEnum") +@XmlEnum +public enum TDomainLNGroupIEnum { + + IARC, + IHMI, + ISAF, + ITCI, + ITMI, + ITPC; + + public String value() { + return name(); + } + + public static TDomainLNGroupIEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupKEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupKEnum.java new file mode 100644 index 0000000..bda4ae2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupKEnum.java @@ -0,0 +1,53 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupKEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupKEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="K[A-Z]*"/>
+ *     <enumeration value="KFAN"/>
+ *     <enumeration value="KFIL"/>
+ *     <enumeration value="KPMP"/>
+ *     <enumeration value="KTNK"/>
+ *     <enumeration value="KVLV"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupKEnum") +@XmlEnum +public enum TDomainLNGroupKEnum { + + KFAN, + KFIL, + KPMP, + KTNK, + KVLV; + + public String value() { + return name(); + } + + public static TDomainLNGroupKEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupMEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupMEnum.java new file mode 100644 index 0000000..6ed6eee --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupMEnum.java @@ -0,0 +1,71 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupMEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupMEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="M[A-Z]*"/>
+ *     <enumeration value="MDIF"/>
+ *     <enumeration value="MENV"/>
+ *     <enumeration value="MFLK"/>
+ *     <enumeration value="MHAI"/>
+ *     <enumeration value="MHAN"/>
+ *     <enumeration value="MHYD"/>
+ *     <enumeration value="MMDC"/>
+ *     <enumeration value="MMET"/>
+ *     <enumeration value="MMTN"/>
+ *     <enumeration value="MMTR"/>
+ *     <enumeration value="MMXN"/>
+ *     <enumeration value="MMXU"/>
+ *     <enumeration value="MSQI"/>
+ *     <enumeration value="MSTA"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupMEnum") +@XmlEnum +public enum TDomainLNGroupMEnum { + + MDIF, + MENV, + MFLK, + MHAI, + MHAN, + MHYD, + MMDC, + MMET, + MMTN, + MMTR, + MMXN, + MMXU, + MSQI, + MSTA; + + public String value() { + return name(); + } + + public static TDomainLNGroupMEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupPEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupPEnum.java new file mode 100644 index 0000000..b7b892b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupPEnum.java @@ -0,0 +1,103 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupPEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupPEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="P[A-Z]*"/>
+ *     <enumeration value="PDIF"/>
+ *     <enumeration value="PDIR"/>
+ *     <enumeration value="PDIS"/>
+ *     <enumeration value="PDOP"/>
+ *     <enumeration value="PDUP"/>
+ *     <enumeration value="PFRC"/>
+ *     <enumeration value="PHAR"/>
+ *     <enumeration value="PHIZ"/>
+ *     <enumeration value="PIOC"/>
+ *     <enumeration value="PMRI"/>
+ *     <enumeration value="PMSS"/>
+ *     <enumeration value="POPF"/>
+ *     <enumeration value="PPAM"/>
+ *     <enumeration value="PRTR"/>
+ *     <enumeration value="PSCH"/>
+ *     <enumeration value="PSDE"/>
+ *     <enumeration value="PTEF"/>
+ *     <enumeration value="PTHF"/>
+ *     <enumeration value="PTOC"/>
+ *     <enumeration value="PTOF"/>
+ *     <enumeration value="PTOV"/>
+ *     <enumeration value="PTRC"/>
+ *     <enumeration value="PTTR"/>
+ *     <enumeration value="PTUC"/>
+ *     <enumeration value="PTUF"/>
+ *     <enumeration value="PTUV"/>
+ *     <enumeration value="PUPF"/>
+ *     <enumeration value="PVOC"/>
+ *     <enumeration value="PVPH"/>
+ *     <enumeration value="PZSU"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupPEnum") +@XmlEnum +public enum TDomainLNGroupPEnum { + + PDIF, + PDIR, + PDIS, + PDOP, + PDUP, + PFRC, + PHAR, + PHIZ, + PIOC, + PMRI, + PMSS, + POPF, + PPAM, + PRTR, + PSCH, + PSDE, + PTEF, + PTHF, + PTOC, + PTOF, + PTOV, + PTRC, + PTTR, + PTUC, + PTUF, + PTUV, + PUPF, + PVOC, + PVPH, + PZSU; + + public String value() { + return name(); + } + + public static TDomainLNGroupPEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupQEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupQEnum.java new file mode 100644 index 0000000..8d659eb --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupQEnum.java @@ -0,0 +1,55 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupQEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupQEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="Q[A-Z]*"/>
+ *     <enumeration value="QFVR"/>
+ *     <enumeration value="QITR"/>
+ *     <enumeration value="QIUB"/>
+ *     <enumeration value="QVTR"/>
+ *     <enumeration value="QVUB"/>
+ *     <enumeration value="QVVR"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupQEnum") +@XmlEnum +public enum TDomainLNGroupQEnum { + + QFVR, + QITR, + QIUB, + QVTR, + QVUB, + QVVR; + + public String value() { + return name(); + } + + public static TDomainLNGroupQEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupREnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupREnum.java new file mode 100644 index 0000000..89d850f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupREnum.java @@ -0,0 +1,65 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupREnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupREnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="R[A-Z]*"/>
+ *     <enumeration value="RADR"/>
+ *     <enumeration value="RBDR"/>
+ *     <enumeration value="RBRF"/>
+ *     <enumeration value="RDIR"/>
+ *     <enumeration value="RDRE"/>
+ *     <enumeration value="RDRS"/>
+ *     <enumeration value="RFLO"/>
+ *     <enumeration value="RMXU"/>
+ *     <enumeration value="RPSB"/>
+ *     <enumeration value="RREC"/>
+ *     <enumeration value="RSYN"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupREnum") +@XmlEnum +public enum TDomainLNGroupREnum { + + RADR, + RBDR, + RBRF, + RDIR, + RDRE, + RDRS, + RFLO, + RMXU, + RPSB, + RREC, + RSYN; + + public String value() { + return name(); + } + + public static TDomainLNGroupREnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupSEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupSEnum.java new file mode 100644 index 0000000..770fa52 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupSEnum.java @@ -0,0 +1,65 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupSEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupSEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="S[A-Z]*"/>
+ *     <enumeration value="SARC"/>
+ *     <enumeration value="SCBR"/>
+ *     <enumeration value="SIMG"/>
+ *     <enumeration value="SIML"/>
+ *     <enumeration value="SLTC"/>
+ *     <enumeration value="SOPM"/>
+ *     <enumeration value="SPDC"/>
+ *     <enumeration value="SPTR"/>
+ *     <enumeration value="SSWI"/>
+ *     <enumeration value="STMP"/>
+ *     <enumeration value="SVBR"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupSEnum") +@XmlEnum +public enum TDomainLNGroupSEnum { + + SARC, + SCBR, + SIMG, + SIML, + SLTC, + SOPM, + SPDC, + SPTR, + SSWI, + STMP, + SVBR; + + public String value() { + return name(); + } + + public static TDomainLNGroupSEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupTEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupTEnum.java new file mode 100644 index 0000000..bc6b003 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupTEnum.java @@ -0,0 +1,83 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupTEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupTEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="T[A-Z]*"/>
+ *     <enumeration value="TANG"/>
+ *     <enumeration value="TAXD"/>
+ *     <enumeration value="TCTR"/>
+ *     <enumeration value="TDST"/>
+ *     <enumeration value="TFLW"/>
+ *     <enumeration value="TFRQ"/>
+ *     <enumeration value="TGSN"/>
+ *     <enumeration value="THUM"/>
+ *     <enumeration value="TLVL"/>
+ *     <enumeration value="TMGF"/>
+ *     <enumeration value="TMVM"/>
+ *     <enumeration value="TPOS"/>
+ *     <enumeration value="TPRS"/>
+ *     <enumeration value="TRTN"/>
+ *     <enumeration value="TSND"/>
+ *     <enumeration value="TTMP"/>
+ *     <enumeration value="TTNS"/>
+ *     <enumeration value="TVBR"/>
+ *     <enumeration value="TVTR"/>
+ *     <enumeration value="TWPH"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupTEnum") +@XmlEnum +public enum TDomainLNGroupTEnum { + + TANG, + TAXD, + TCTR, + TDST, + TFLW, + TFRQ, + TGSN, + THUM, + TLVL, + TMGF, + TMVM, + TPOS, + TPRS, + TRTN, + TSND, + TTMP, + TTNS, + TVBR, + TVTR, + TWPH; + + public String value() { + return name(); + } + + public static TDomainLNGroupTEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupXEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupXEnum.java new file mode 100644 index 0000000..0379e20 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupXEnum.java @@ -0,0 +1,47 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupXEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupXEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="X[A-Z]*"/>
+ *     <enumeration value="XCBR"/>
+ *     <enumeration value="XSWI"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupXEnum") +@XmlEnum +public enum TDomainLNGroupXEnum { + + XCBR, + XSWI; + + public String value() { + return name(); + } + + public static TDomainLNGroupXEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupYEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupYEnum.java new file mode 100644 index 0000000..df1bbf9 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupYEnum.java @@ -0,0 +1,51 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupYEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupYEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="Y[A-Z]*"/>
+ *     <enumeration value="YEFN"/>
+ *     <enumeration value="YLTC"/>
+ *     <enumeration value="YPSH"/>
+ *     <enumeration value="YPTR"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupYEnum") +@XmlEnum +public enum TDomainLNGroupYEnum { + + YEFN, + YLTC, + YPSH, + YPTR; + + public String value() { + return name(); + } + + public static TDomainLNGroupYEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupZEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupZEnum.java new file mode 100644 index 0000000..c60193e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDomainLNGroupZEnum.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDomainLNGroupZEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tDomainLNGroupZEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="Z[A-Z]*"/>
+ *     <enumeration value="ZAXN"/>
+ *     <enumeration value="ZBAT"/>
+ *     <enumeration value="ZBSH"/>
+ *     <enumeration value="ZCAB"/>
+ *     <enumeration value="ZCAP"/>
+ *     <enumeration value="ZCON"/>
+ *     <enumeration value="ZGEN"/>
+ *     <enumeration value="ZGIL"/>
+ *     <enumeration value="ZLIN"/>
+ *     <enumeration value="ZMOT"/>
+ *     <enumeration value="ZREA"/>
+ *     <enumeration value="ZRES"/>
+ *     <enumeration value="ZRRC"/>
+ *     <enumeration value="ZSAR"/>
+ *     <enumeration value="ZSCR"/>
+ *     <enumeration value="ZSMC"/>
+ *     <enumeration value="ZTCF"/>
+ *     <enumeration value="ZTCR"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tDomainLNGroupZEnum") +@XmlEnum +public enum TDomainLNGroupZEnum { + + ZAXN, + ZBAT, + ZBSH, + ZCAB, + ZCAP, + ZCON, + ZGEN, + ZGIL, + ZLIN, + ZMOT, + ZREA, + ZRES, + ZRRC, + ZSAR, + ZSCR, + ZSMC, + ZTCF, + ZTCR; + + public String value() { + return name(); + } + + public static TDomainLNGroupZEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDurationInMilliSec.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDurationInMilliSec.java new file mode 100644 index 0000000..3cad063 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDurationInMilliSec.java @@ -0,0 +1,137 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tDurationInMilliSec complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDurationInMilliSec">
+ *   <simpleContent>
+ *     <extension base="<http://www.w3.org/2001/XMLSchema>decimal">
+ *       <attribute name="unit" type="{http://www.w3.org/2001/XMLSchema}token" fixed="s" />
+ *       <attribute name="multiplier" type="{http://www.iec.ch/61850/2003/SCL}tUnitMultiplierEnum" fixed="m" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDurationInMilliSec", propOrder = { + "value" +}) +public class TDurationInMilliSec { + + @XmlValue + protected BigDecimal value; + @XmlAttribute(name = "unit") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String unit; + @XmlAttribute(name = "multiplier") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String multiplier; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setValue(BigDecimal value) { + this.value = value; + } + + /** + * 获取unit属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUnit() { + if (unit == null) { + return "s"; + } else { + return unit; + } + } + + /** + * 设置unit属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUnit(String value) { + this.unit = value; + } + + /** + * 获取multiplier属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getMultiplier() { + if (multiplier == null) { + return "m"; + } else { + return multiplier; + } + } + + /** + * 设置multiplier属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMultiplier(String value) { + this.multiplier = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDurationInSec.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDurationInSec.java new file mode 100644 index 0000000..00308dc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TDurationInSec.java @@ -0,0 +1,41 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tDurationInSec complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tDurationInSec">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tValueWithUnit">
+ *       <attribute name="unit" use="required" type="{http://www.w3.org/2001/XMLSchema}token" fixed="s" />
+ *       <attribute name="multiplier" type="{http://www.iec.ch/61850/2003/SCL}tUnitMultiplierEnum" default="" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tDurationInSec") +public class TDurationInSec + extends TValueWithUnit +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEnumType.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEnumType.java new file mode 100644 index 0000000..ceea2ba --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEnumType.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tEnumType complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tEnumType">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tIDNaming">
+ *       <sequence>
+ *         <element name="EnumVal" type="{http://www.iec.ch/61850/2003/SCL}tEnumVal" maxOccurs="unbounded"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tEnumType", propOrder = { + "enumVal" +}) +public class TEnumType + extends TIDNaming +{ + + @XmlElement(name = "EnumVal", required = true) + protected List enumVal; + + /** + * Gets the value of the enumVal property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the enumVal property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEnumVal().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEnumVal } + * + * + */ + public List getEnumVal() { + if (enumVal == null) { + enumVal = new ArrayList(); + } + return this.enumVal; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEnumVal.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEnumVal.java new file mode 100644 index 0000000..b280ed5 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEnumVal.java @@ -0,0 +1,123 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tEnumVal complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tEnumVal">
+ *   <simpleContent>
+ *     <extension base="<http://www.iec.ch/61850/2003/SCL>tEnumStringValue">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agDesc"/>
+ *       <attribute name="ord" use="required" type="{http://www.w3.org/2001/XMLSchema}int" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tEnumVal", propOrder = { + "value" +}) +public class TEnumVal { + + @XmlValue + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String value; + @XmlAttribute(name = "ord", required = true) + protected int ord; + @XmlAttribute(name = "desc") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String desc; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取ord属性的值。 + * + */ + public int getOrd() { + return ord; + } + + /** + * 设置ord属性的值。 + * + */ + public void setOrd(int value) { + this.ord = value; + } + + /** + * 获取desc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesc() { + if (desc == null) { + return ""; + } else { + return desc; + } + } + + /** + * 设置desc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesc(String value) { + this.desc = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEqFunction.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEqFunction.java new file mode 100644 index 0000000..8c16a09 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEqFunction.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tEqFunction complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tEqFunction">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAbstractEqFuncSubFunc">
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tEqFunction") +public class TEqFunction + extends TAbstractEqFuncSubFunc +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEqSubFunction.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEqSubFunction.java new file mode 100644 index 0000000..9ee25e6 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEqSubFunction.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tEqSubFunction complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tEqSubFunction">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAbstractEqFuncSubFunc">
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tEqSubFunction") +public class TEqSubFunction + extends TAbstractEqFuncSubFunc +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEquipment.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEquipment.java new file mode 100644 index 0000000..21a60e7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEquipment.java @@ -0,0 +1,78 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tEquipment complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tEquipment">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agVirtual"/>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tEquipment") +@XmlSeeAlso({ + TPowerTransformer.class, + TAbstractConductingEquipment.class, + TGeneralEquipment.class +}) +public abstract class TEquipment + extends TPowerSystemResource +{ + + @XmlAttribute(name = "virtual") + protected Boolean virtual; + + /** + * 获取virtual属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isVirtual() { + if (virtual == null) { + return false; + } else { + return virtual; + } + } + + /** + * 设置virtual属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setVirtual(Boolean value) { + this.virtual = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEquipmentContainer.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEquipmentContainer.java new file mode 100644 index 0000000..976f66d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TEquipmentContainer.java @@ -0,0 +1,118 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tEquipmentContainer complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tEquipmentContainer">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <sequence>
+ *         <element name="PowerTransformer" type="{http://www.iec.ch/61850/2003/SCL}tPowerTransformer" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="GeneralEquipment" type="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tEquipmentContainer", propOrder = { + "powerTransformer", + "generalEquipment" +}) +@XmlSeeAlso({ + TSubstation.class, + TVoltageLevel.class, + TBay.class +}) +public abstract class TEquipmentContainer + extends TPowerSystemResource +{ + + @XmlElement(name = "PowerTransformer") + protected List powerTransformer; + @XmlElement(name = "GeneralEquipment") + protected List generalEquipment; + + /** + * Gets the value of the powerTransformer property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the powerTransformer property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getPowerTransformer().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TPowerTransformer } + * + * + */ + public List getPowerTransformer() { + if (powerTransformer == null) { + powerTransformer = new ArrayList(); + } + return this.powerTransformer; + } + + /** + * Gets the value of the generalEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the generalEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGeneralEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TGeneralEquipment } + * + * + */ + public List getGeneralEquipment() { + if (generalEquipment == null) { + generalEquipment = new ArrayList(); + } + return this.generalEquipment; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtControlCheck.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtControlCheck.java new file mode 100644 index 0000000..845e284 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtControlCheck.java @@ -0,0 +1,61 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tExtControlCheck的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tExtControlCheck">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *     <enumeration value="true"/>
+ *     <enumeration value="false"/>
+ *     <enumeration value="conserve"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tExtControlCheck") +@XmlEnum +public enum TExtControlCheck { + + @XmlEnumValue("true") + TRUE("true"), + @XmlEnumValue("false") + FALSE("false"), + @XmlEnumValue("conserve") + CONSERVE("conserve"); + private final String value; + + TExtControlCheck(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TExtControlCheck fromValue(String v) { + for (TExtControlCheck c: TExtControlCheck.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtCtrl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtCtrl.java new file mode 100644 index 0000000..9d33db5 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtCtrl.java @@ -0,0 +1,163 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tExtCtrl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tExtCtrl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tDORef">
+ *       <attribute name="apRef" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *       <attribute name="intAddr" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="checkSynchrocheck" type="{http://www.iec.ch/61850/2003/SCL}tExtControlCheck" default="true" />
+ *       <attribute name="checkInterlock" type="{http://www.iec.ch/61850/2003/SCL}tExtControlCheck" default="true" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tExtCtrl") +public class TExtCtrl + extends TDORef +{ + + @XmlAttribute(name = "apRef") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String apRef; + @XmlAttribute(name = "intAddr") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String intAddr; + @XmlAttribute(name = "checkSynchrocheck") + protected TExtControlCheck checkSynchrocheck; + @XmlAttribute(name = "checkInterlock") + protected TExtControlCheck checkInterlock; + + /** + * 获取apRef属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApRef() { + return apRef; + } + + /** + * 设置apRef属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApRef(String value) { + this.apRef = value; + } + + /** + * 获取intAddr属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIntAddr() { + return intAddr; + } + + /** + * 设置intAddr属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIntAddr(String value) { + this.intAddr = value; + } + + /** + * 获取checkSynchrocheck属性的值。 + * + * @return + * possible object is + * {@link TExtControlCheck } + * + */ + public TExtControlCheck getCheckSynchrocheck() { + if (checkSynchrocheck == null) { + return TExtControlCheck.TRUE; + } else { + return checkSynchrocheck; + } + } + + /** + * 设置checkSynchrocheck属性的值。 + * + * @param value + * allowed object is + * {@link TExtControlCheck } + * + */ + public void setCheckSynchrocheck(TExtControlCheck value) { + this.checkSynchrocheck = value; + } + + /** + * 获取checkInterlock属性的值。 + * + * @return + * possible object is + * {@link TExtControlCheck } + * + */ + public TExtControlCheck getCheckInterlock() { + if (checkInterlock == null) { + return TExtControlCheck.TRUE; + } else { + return checkInterlock; + } + } + + /** + * 设置checkInterlock属性的值。 + * + * @param value + * allowed object is + * {@link TExtControlCheck } + * + */ + public void setCheckInterlock(TExtControlCheck value) { + this.checkInterlock = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtRef.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtRef.java new file mode 100644 index 0000000..a91c10f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TExtRef.java @@ -0,0 +1,357 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tExtRef complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tExtRef">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tDORef">
+ *       <attribute name="daName" type="{http://www.iec.ch/61850/2003/SCL}tFullAttributeName" />
+ *       <attribute name="intAddr" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="serviceType" type="{http://www.iec.ch/61850/2003/SCL}tServiceType" />
+ *       <attribute name="srcLDInst" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+ *       <attribute name="srcPrefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" />
+ *       <attribute name="srcLNClass" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *       <attribute name="srcLNInst" type="{http://www.iec.ch/61850/2003/SCL}tLNInst" />
+ *       <attribute name="srcCBName" type="{http://www.iec.ch/61850/2003/SCL}tCBName" />
+ *       <attribute name="pServT" type="{http://www.iec.ch/61850/2003/SCL}tServiceType" />
+ *       <attribute name="pDA" type="{http://www.iec.ch/61850/2003/SCL}tFullAttributeName" />
+ *       <attribute name="srcCBUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tExtRef") +public class TExtRef + extends TDORef +{ + + @XmlAttribute(name = "daName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String daName; + @XmlAttribute(name = "intAddr") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String intAddr; + @XmlAttribute(name = "serviceType") + protected TServiceType serviceType; + @XmlAttribute(name = "srcLDInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String srcLDInst; + @XmlAttribute(name = "srcPrefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String srcPrefix; + @XmlAttribute(name = "srcLNClass") + protected List srcLNClass; + @XmlAttribute(name = "srcLNInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String srcLNInst; + @XmlAttribute(name = "srcCBName") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String srcCBName; + @XmlAttribute(name = "pServT") + protected TServiceType pServT; + @XmlAttribute(name = "pDA") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String pda; + @XmlAttribute(name = "srcCBUuid") + protected String srcCBUuid; + + /** + * 获取daName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDaName() { + return daName; + } + + /** + * 设置daName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDaName(String value) { + this.daName = value; + } + + /** + * 获取intAddr属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIntAddr() { + return intAddr; + } + + /** + * 设置intAddr属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIntAddr(String value) { + this.intAddr = value; + } + + /** + * 获取serviceType属性的值。 + * + * @return + * possible object is + * {@link TServiceType } + * + */ + public TServiceType getServiceType() { + return serviceType; + } + + /** + * 设置serviceType属性的值。 + * + * @param value + * allowed object is + * {@link TServiceType } + * + */ + public void setServiceType(TServiceType value) { + this.serviceType = value; + } + + /** + * 获取srcLDInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSrcLDInst() { + return srcLDInst; + } + + /** + * 设置srcLDInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSrcLDInst(String value) { + this.srcLDInst = value; + } + + /** + * 获取srcPrefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSrcPrefix() { + return srcPrefix; + } + + /** + * 设置srcPrefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSrcPrefix(String value) { + this.srcPrefix = value; + } + + /** + * Gets the value of the srcLNClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the srcLNClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSrcLNClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getSrcLNClass() { + if (srcLNClass == null) { + srcLNClass = new ArrayList(); + } + return this.srcLNClass; + } + + /** + * 获取srcLNInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSrcLNInst() { + return srcLNInst; + } + + /** + * 设置srcLNInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSrcLNInst(String value) { + this.srcLNInst = value; + } + + /** + * 获取srcCBName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSrcCBName() { + return srcCBName; + } + + /** + * 设置srcCBName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSrcCBName(String value) { + this.srcCBName = value; + } + + /** + * 获取pServT属性的值。 + * + * @return + * possible object is + * {@link TServiceType } + * + */ + public TServiceType getPServT() { + return pServT; + } + + /** + * 设置pServT属性的值。 + * + * @param value + * allowed object is + * {@link TServiceType } + * + */ + public void setPServT(TServiceType value) { + this.pServT = value; + } + + /** + * 获取pda属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPDA() { + return pda; + } + + /** + * 设置pda属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPDA(String value) { + this.pda = value; + } + + /** + * 获取srcCBUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSrcCBUuid() { + return srcCBUuid; + } + + /** + * 设置srcCBUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSrcCBUuid(String value) { + this.srcCBUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFCDA.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFCDA.java new file mode 100644 index 0000000..04ea5ea --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFCDA.java @@ -0,0 +1,301 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tFCDA complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tFCDA">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="ldInst" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+ *       <attribute name="prefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" default="" />
+ *       <attribute name="lnClass" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *       <attribute name="lnInst" type="{http://www.iec.ch/61850/2003/SCL}tLNInst" />
+ *       <attribute name="doName" type="{http://www.iec.ch/61850/2003/SCL}tFullDOName" />
+ *       <attribute name="daName" type="{http://www.iec.ch/61850/2003/SCL}tFullAttributeName" />
+ *       <attribute name="fc" use="required" type="{http://www.iec.ch/61850/2003/SCL}tFCEnum" />
+ *       <attribute name="ix" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="lnUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tFCDA") +public class TFCDA { + + @XmlAttribute(name = "ldInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldInst; + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass") + protected List lnClass; + @XmlAttribute(name = "lnInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String lnInst; + @XmlAttribute(name = "doName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String doName; + @XmlAttribute(name = "daName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String daName; + @XmlAttribute(name = "fc", required = true) + protected String fc; + @XmlAttribute(name = "ix") + @XmlSchemaType(name = "unsignedInt") + protected Long ix; + @XmlAttribute(name = "lnUuid") + protected String lnUuid; + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + return ldInst; + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + if (prefix == null) { + return ""; + } else { + return prefix; + } + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取lnInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnInst() { + return lnInst; + } + + /** + * 设置lnInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnInst(String value) { + this.lnInst = value; + } + + /** + * 获取doName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDoName() { + return doName; + } + + /** + * 设置doName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDoName(String value) { + this.doName = value; + } + + /** + * 获取daName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDaName() { + return daName; + } + + /** + * 设置daName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDaName(String value) { + this.daName = value; + } + + /** + * 获取fc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getFc() { + return fc; + } + + /** + * 设置fc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFc(String value) { + this.fc = value; + } + + /** + * 获取ix属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getIx() { + return ix; + } + + /** + * 设置ix属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setIx(Long value) { + this.ix = value; + } + + /** + * 获取lnUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnUuid() { + return lnUuid; + } + + /** + * 设置lnUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnUuid(String value) { + this.lnUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFileHandling.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFileHandling.java new file mode 100644 index 0000000..e19b05f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFileHandling.java @@ -0,0 +1,133 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tFileHandling complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tFileHandling">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+ *       <attribute name="mms" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="ftp" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="ftps" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tFileHandling") +public class TFileHandling + extends TServiceYesNo +{ + + @XmlAttribute(name = "mms") + protected Boolean mms; + @XmlAttribute(name = "ftp") + protected Boolean ftp; + @XmlAttribute(name = "ftps") + protected Boolean ftps; + + /** + * 获取mms属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isMms() { + if (mms == null) { + return true; + } else { + return mms; + } + } + + /** + * 设置mms属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setMms(Boolean value) { + this.mms = value; + } + + /** + * 获取ftp属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isFtp() { + if (ftp == null) { + return false; + } else { + return ftp; + } + } + + /** + * 设置ftp属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setFtp(Boolean value) { + this.ftp = value; + } + + /** + * 获取ftps属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isFtps() { + if (ftps == null) { + return false; + } else { + return ftps; + } + } + + /** + * 设置ftps属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setFtps(Boolean value) { + this.ftps = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFunction.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFunction.java new file mode 100644 index 0000000..a4fc14e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TFunction.java @@ -0,0 +1,178 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tFunction complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tFunction">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <sequence>
+ *         <element name="SubFunction" type="{http://www.iec.ch/61850/2003/SCL}tSubFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="GeneralEquipment" type="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="ConductingEquipment" type="{http://www.iec.ch/61850/2003/SCL}tConductingEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tFunction", propOrder = { + "subFunction", + "generalEquipment", + "conductingEquipment" +}) +public class TFunction + extends TPowerSystemResource +{ + + @XmlElement(name = "SubFunction") + protected List subFunction; + @XmlElement(name = "GeneralEquipment") + protected List generalEquipment; + @XmlElement(name = "ConductingEquipment") + protected List conductingEquipment; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String type; + + /** + * Gets the value of the subFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the subFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubFunction } + * + * + */ + public List getSubFunction() { + if (subFunction == null) { + subFunction = new ArrayList(); + } + return this.subFunction; + } + + /** + * Gets the value of the generalEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the generalEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGeneralEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TGeneralEquipment } + * + * + */ + public List getGeneralEquipment() { + if (generalEquipment == null) { + generalEquipment = new ArrayList(); + } + return this.generalEquipment; + } + + /** + * Gets the value of the conductingEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the conductingEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConductingEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConductingEquipment } + * + * + */ + public List getConductingEquipment() { + if (conductingEquipment == null) { + conductingEquipment = new ArrayList(); + } + return this.conductingEquipment; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGOOSEcapabilities.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGOOSEcapabilities.java new file mode 100644 index 0000000..4fc7a59 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGOOSEcapabilities.java @@ -0,0 +1,133 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tGOOSEcapabilities complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tGOOSEcapabilities">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceWithMax">
+ *       <attribute name="fixedOffs" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="goose" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="rGOOSE" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tGOOSEcapabilities") +public class TGOOSEcapabilities + extends TServiceWithMax +{ + + @XmlAttribute(name = "fixedOffs") + protected Boolean fixedOffs; + @XmlAttribute(name = "goose") + protected Boolean goose; + @XmlAttribute(name = "rGOOSE") + protected Boolean rgoose; + + /** + * 获取fixedOffs属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isFixedOffs() { + if (fixedOffs == null) { + return false; + } else { + return fixedOffs; + } + } + + /** + * 设置fixedOffs属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setFixedOffs(Boolean value) { + this.fixedOffs = value; + } + + /** + * 获取goose属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isGoose() { + if (goose == null) { + return true; + } else { + return goose; + } + } + + /** + * 设置goose属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setGoose(Boolean value) { + this.goose = value; + } + + /** + * 获取rgoose属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isRGOOSE() { + if (rgoose == null) { + return false; + } else { + return rgoose; + } + } + + /** + * 设置rgoose属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRGOOSE(Boolean value) { + this.rgoose = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSE.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSE.java new file mode 100644 index 0000000..4d7bda0 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSE.java @@ -0,0 +1,100 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tGSE complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tGSE">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControlBlock">
+ *       <sequence>
+ *         <element name="MinTime" type="{http://www.iec.ch/61850/2003/SCL}tDurationInMilliSec" minOccurs="0"/>
+ *         <element name="MaxTime" type="{http://www.iec.ch/61850/2003/SCL}tDurationInMilliSec" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tGSE", propOrder = { + "minTime", + "maxTime" +}) +public class TGSE + extends TControlBlock +{ + + @XmlElement(name = "MinTime") + protected TDurationInMilliSec minTime; + @XmlElement(name = "MaxTime") + protected TDurationInMilliSec maxTime; + + /** + * 获取minTime属性的值。 + * + * @return + * possible object is + * {@link TDurationInMilliSec } + * + */ + public TDurationInMilliSec getMinTime() { + return minTime; + } + + /** + * 设置minTime属性的值。 + * + * @param value + * allowed object is + * {@link TDurationInMilliSec } + * + */ + public void setMinTime(TDurationInMilliSec value) { + this.minTime = value; + } + + /** + * 获取maxTime属性的值。 + * + * @return + * possible object is + * {@link TDurationInMilliSec } + * + */ + public TDurationInMilliSec getMaxTime() { + return maxTime; + } + + /** + * 设置maxTime属性的值。 + * + * @param value + * allowed object is + * {@link TDurationInMilliSec } + * + */ + public void setMaxTime(TDurationInMilliSec value) { + this.maxTime = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSEControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSEControl.java new file mode 100644 index 0000000..5d37b6c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSEControl.java @@ -0,0 +1,196 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tGSEControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tGSEControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControlWithIEDName">
+ *       <sequence>
+ *         <element name="Protocol" type="{http://www.iec.ch/61850/2003/SCL}tProtocol" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" type="{http://www.iec.ch/61850/2003/SCL}tGSEControlTypeEnum" default="GOOSE" />
+ *       <attribute name="appID" use="required" type="{http://www.iec.ch/61850/2003/SCL}tMessageID" />
+ *       <attribute name="fixedOffs" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="securityEnable" type="{http://www.iec.ch/61850/2003/SCL}tPredefinedTypeOfSecurityEnum" default="None" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tGSEControl", propOrder = { + "protocol" +}) +public class TGSEControl + extends TControlWithIEDName +{ + + @XmlElement(name = "Protocol") + protected TProtocol protocol; + @XmlAttribute(name = "type") + protected TGSEControlTypeEnum type; + @XmlAttribute(name = "appID", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String appID; + @XmlAttribute(name = "fixedOffs") + protected Boolean fixedOffs; + @XmlAttribute(name = "securityEnable") + protected TPredefinedTypeOfSecurityEnum securityEnable; + + /** + * 获取protocol属性的值。 + * + * @return + * possible object is + * {@link TProtocol } + * + */ + public TProtocol getProtocol() { + return protocol; + } + + /** + * 设置protocol属性的值。 + * + * @param value + * allowed object is + * {@link TProtocol } + * + */ + public void setProtocol(TProtocol value) { + this.protocol = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link TGSEControlTypeEnum } + * + */ + public TGSEControlTypeEnum getType() { + if (type == null) { + return TGSEControlTypeEnum.GOOSE; + } else { + return type; + } + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link TGSEControlTypeEnum } + * + */ + public void setType(TGSEControlTypeEnum value) { + this.type = value; + } + + /** + * 获取appID属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getAppID() { + return appID; + } + + /** + * 设置appID属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAppID(String value) { + this.appID = value; + } + + /** + * 获取fixedOffs属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isFixedOffs() { + if (fixedOffs == null) { + return false; + } else { + return fixedOffs; + } + } + + /** + * 设置fixedOffs属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setFixedOffs(Boolean value) { + this.fixedOffs = value; + } + + /** + * 获取securityEnable属性的值。 + * + * @return + * possible object is + * {@link TPredefinedTypeOfSecurityEnum } + * + */ + public TPredefinedTypeOfSecurityEnum getSecurityEnable() { + if (securityEnable == null) { + return TPredefinedTypeOfSecurityEnum.NONE; + } else { + return securityEnable; + } + } + + /** + * 设置securityEnable属性的值。 + * + * @param value + * allowed object is + * {@link TPredefinedTypeOfSecurityEnum } + * + */ + public void setSecurityEnable(TPredefinedTypeOfSecurityEnum value) { + this.securityEnable = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSEControlTypeEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSEControlTypeEnum.java new file mode 100644 index 0000000..f2651d0 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSEControlTypeEnum.java @@ -0,0 +1,45 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tGSEControlTypeEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tGSEControlTypeEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="GSSE"/>
+ *     <enumeration value="GOOSE"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tGSEControlTypeEnum") +@XmlEnum +public enum TGSEControlTypeEnum { + + GSSE, + GOOSE; + + public String value() { + return name(); + } + + public static TGSEControlTypeEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSESettings.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSESettings.java new file mode 100644 index 0000000..c451ff6 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGSESettings.java @@ -0,0 +1,165 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tGSESettings complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tGSESettings">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceSettings">
+ *       <sequence>
+ *         <element name="McSecurity" type="{http://www.iec.ch/61850/2003/SCL}tMcSecurity" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="appID" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="dataLabel" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="kdaParticipant" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tGSESettings", propOrder = { + "mcSecurity" +}) +public class TGSESettings + extends TServiceSettings +{ + + @XmlElement(name = "McSecurity") + protected TMcSecurity mcSecurity; + @XmlAttribute(name = "appID") + protected TServiceSettingsEnum appID; + @XmlAttribute(name = "dataLabel") + protected TServiceSettingsEnum dataLabel; + @XmlAttribute(name = "kdaParticipant") + protected Boolean kdaParticipant; + + /** + * 获取mcSecurity属性的值。 + * + * @return + * possible object is + * {@link TMcSecurity } + * + */ + public TMcSecurity getMcSecurity() { + return mcSecurity; + } + + /** + * 设置mcSecurity属性的值。 + * + * @param value + * allowed object is + * {@link TMcSecurity } + * + */ + public void setMcSecurity(TMcSecurity value) { + this.mcSecurity = value; + } + + /** + * 获取appID属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getAppID() { + if (appID == null) { + return TServiceSettingsEnum.FIX; + } else { + return appID; + } + } + + /** + * 设置appID属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setAppID(TServiceSettingsEnum value) { + this.appID = value; + } + + /** + * 获取dataLabel属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getDataLabel() { + if (dataLabel == null) { + return TServiceSettingsEnum.FIX; + } else { + return dataLabel; + } + } + + /** + * 设置dataLabel属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setDataLabel(TServiceSettingsEnum value) { + this.dataLabel = value; + } + + /** + * 获取kdaParticipant属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isKdaParticipant() { + if (kdaParticipant == null) { + return false; + } else { + return kdaParticipant; + } + } + + /** + * 设置kdaParticipant属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setKdaParticipant(Boolean value) { + this.kdaParticipant = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGeneralEquipment.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGeneralEquipment.java new file mode 100644 index 0000000..f127578 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGeneralEquipment.java @@ -0,0 +1,107 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tGeneralEquipment complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tGeneralEquipment">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tEquipment">
+ *       <sequence>
+ *         <element name="EqFunction" type="{http://www.iec.ch/61850/2003/SCL}tEqFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipmentEnum" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tGeneralEquipment", propOrder = { + "eqFunction" +}) +public class TGeneralEquipment + extends TEquipment +{ + + @XmlElement(name = "EqFunction") + protected List eqFunction; + @XmlAttribute(name = "type", required = true) + protected String type; + + /** + * Gets the value of the eqFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the eqFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEqFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEqFunction } + * + * + */ + public List getEqFunction() { + if (eqFunction == null) { + eqFunction = new ArrayList(); + } + return this.eqFunction; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGeneralEquipmentContainer.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGeneralEquipmentContainer.java new file mode 100644 index 0000000..38dead1 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TGeneralEquipmentContainer.java @@ -0,0 +1,117 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tGeneralEquipmentContainer complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tGeneralEquipmentContainer">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <sequence>
+ *         <element name="GeneralEquipment" type="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Function" type="{http://www.iec.ch/61850/2003/SCL}tFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tGeneralEquipmentContainer", propOrder = { + "generalEquipment", + "function" +}) +@XmlSeeAlso({ + TProcess.class, + TLine.class +}) +public abstract class TGeneralEquipmentContainer + extends TPowerSystemResource +{ + + @XmlElement(name = "GeneralEquipment") + protected List generalEquipment; + @XmlElement(name = "Function") + protected List function; + + /** + * Gets the value of the generalEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the generalEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGeneralEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TGeneralEquipment } + * + * + */ + public List getGeneralEquipment() { + if (generalEquipment == null) { + generalEquipment = new ArrayList(); + } + return this.generalEquipment; + } + + /** + * Gets the value of the function property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the function property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TFunction } + * + * + */ + public List getFunction() { + if (function == null) { + function = new ArrayList(); + } + return this.function; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THeader.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THeader.java new file mode 100644 index 0000000..17c10d2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THeader.java @@ -0,0 +1,441 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tHeader complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tHeader">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Text" type="{http://www.iec.ch/61850/2003/SCL}tText" minOccurs="0"/>
+ *         <element name="History" minOccurs="0">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="Hitem" type="{http://www.iec.ch/61850/2003/SCL}tHitem" maxOccurs="unbounded"/>
+ *                 </sequence>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="SourceFiles" type="{http://www.iec.ch/61850/2003/SCL}tHeaderSclRef" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="version" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="revision" type="{http://www.w3.org/2001/XMLSchema}normalizedString" default="" />
+ *       <attribute name="toolID" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="nameStructure" default="IEDName">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *             <enumeration value="IEDName"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="fileType" type="{http://www.iec.ch/61850/2003/SCL}tSCLFileType" />
+ *       <attribute name="uuid" use="required" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <attribute name="baseUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tHeader", propOrder = { + "text", + "history", + "sourceFiles" +}) +public class THeader { + + @XmlElement(name = "Text") + protected TText text; + @XmlElement(name = "History") + protected THeader.History history; + @XmlElement(name = "SourceFiles") + protected THeaderSclRef sourceFiles; + @XmlAttribute(name = "id", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String id; + @XmlAttribute(name = "version") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String version; + @XmlAttribute(name = "revision") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String revision; + @XmlAttribute(name = "toolID") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String toolID; + @XmlAttribute(name = "nameStructure") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String nameStructure; + @XmlAttribute(name = "fileType") + protected String fileType; + @XmlAttribute(name = "uuid", required = true) + protected String uuid; + @XmlAttribute(name = "baseUuid") + protected String baseUuid; + + /** + * 获取text属性的值。 + * + * @return + * possible object is + * {@link TText } + * + */ + public TText getText() { + return text; + } + + /** + * 设置text属性的值。 + * + * @param value + * allowed object is + * {@link TText } + * + */ + public void setText(TText value) { + this.text = value; + } + + /** + * 获取history属性的值。 + * + * @return + * possible object is + * {@link THeader.History } + * + */ + public THeader.History getHistory() { + return history; + } + + /** + * 设置history属性的值。 + * + * @param value + * allowed object is + * {@link THeader.History } + * + */ + public void setHistory(THeader.History value) { + this.history = value; + } + + /** + * 获取sourceFiles属性的值。 + * + * @return + * possible object is + * {@link THeaderSclRef } + * + */ + public THeaderSclRef getSourceFiles() { + return sourceFiles; + } + + /** + * 设置sourceFiles属性的值。 + * + * @param value + * allowed object is + * {@link THeaderSclRef } + * + */ + public void setSourceFiles(THeaderSclRef value) { + this.sourceFiles = value; + } + + /** + * 获取id属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * 设置id属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * 获取version属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * 设置version属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * 获取revision属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getRevision() { + if (revision == null) { + return ""; + } else { + return revision; + } + } + + /** + * 设置revision属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRevision(String value) { + this.revision = value; + } + + /** + * 获取toolID属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getToolID() { + return toolID; + } + + /** + * 设置toolID属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setToolID(String value) { + this.toolID = value; + } + + /** + * 获取nameStructure属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getNameStructure() { + if (nameStructure == null) { + return "IEDName"; + } else { + return nameStructure; + } + } + + /** + * 设置nameStructure属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNameStructure(String value) { + this.nameStructure = value; + } + + /** + * 获取fileType属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getFileType() { + return fileType; + } + + /** + * 设置fileType属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFileType(String value) { + this.fileType = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取baseUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getBaseUuid() { + return baseUuid; + } + + /** + * 设置baseUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setBaseUuid(String value) { + this.baseUuid = value; + } + + + /** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="Hitem" type="{http://www.iec.ch/61850/2003/SCL}tHitem" maxOccurs="unbounded"/>
+     *       </sequence>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "hitem" + }) + public static class History { + + @XmlElement(name = "Hitem", required = true) + protected List hitem; + + /** + * Gets the value of the hitem property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the hitem property. + * + *

+ * For example, to add a new item, do as follows: + *

+         *    getHitem().add(newItem);
+         * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link THitem } + * + * + */ + public List getHitem() { + if (hitem == null) { + hitem = new ArrayList(); + } + return this.hitem; + } + + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THeaderSclRef.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THeaderSclRef.java new file mode 100644 index 0000000..edefa58 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THeaderSclRef.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tHeaderSclRef complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tHeaderSclRef">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <sequence>
+ *         <element name="SclFileReference" type="{http://www.iec.ch/61850/2003/SCL}tSclFileUUIDReference" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tHeaderSclRef", propOrder = { + "sclFileReference" +}) +public class THeaderSclRef + extends TBaseElement +{ + + @XmlElement(name = "SclFileReference") + protected List sclFileReference; + + /** + * Gets the value of the sclFileReference property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the sclFileReference property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSclFileReference().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSclFileUUIDReference } + * + * + */ + public List getSclFileReference() { + if (sclFileReference == null) { + sclFileReference = new ArrayList(); + } + return this.sclFileReference; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THitem.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THitem.java new file mode 100644 index 0000000..badeb60 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/THitem.java @@ -0,0 +1,221 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tHitem complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tHitem">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAnyContentFromOtherNamespace">
+ *       <sequence>
+ *         <element name="SourceFiles" type="{http://www.iec.ch/61850/2003/SCL}tHeaderSclRef" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="revision" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="when" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="who" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="what" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="why" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tHitem") +public class THitem + extends TAnyContentFromOtherNamespace +{ + + @XmlAttribute(name = "version", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String version; + @XmlAttribute(name = "revision", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String revision; + @XmlAttribute(name = "when", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String when; + @XmlAttribute(name = "who") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String who; + @XmlAttribute(name = "what") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String what; + @XmlAttribute(name = "why") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String why; + + /** + * 获取version属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * 设置version属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * 获取revision属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getRevision() { + return revision; + } + + /** + * 设置revision属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRevision(String value) { + this.revision = value; + } + + /** + * 获取when属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getWhen() { + return when; + } + + /** + * 设置when属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setWhen(String value) { + this.when = value; + } + + /** + * 获取who属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getWho() { + return who; + } + + /** + * 设置who属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setWho(String value) { + this.who = value; + } + + /** + * 获取what属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getWhat() { + return what; + } + + /** + * 设置what属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setWhat(String value) { + this.what = value; + } + + /** + * 获取why属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getWhy() { + return why; + } + + /** + * 设置why属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setWhy(String value) { + this.why = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIDNaming.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIDNaming.java new file mode 100644 index 0000000..af0819c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIDNaming.java @@ -0,0 +1,113 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tIDNaming complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tIDNaming">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agDesc"/>
+ *       <attribute name="id" use="required" type="{http://www.iec.ch/61850/2003/SCL}tID" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tIDNaming") +@XmlSeeAlso({ + TLNodeType.class, + TDOType.class, + TDAType.class, + TEnumType.class +}) +public abstract class TIDNaming + extends TBaseElement +{ + + @XmlAttribute(name = "id", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String id; + @XmlAttribute(name = "desc") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String desc; + + /** + * 获取id属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * 设置id属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * 获取desc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesc() { + if (desc == null) { + return ""; + } else { + return desc; + } + } + + /** + * 设置desc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesc(String value) { + this.desc = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIED.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIED.java new file mode 100644 index 0000000..3ff1407 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIED.java @@ -0,0 +1,552 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tIED complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tIED">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Services" type="{http://www.iec.ch/61850/2003/SCL}tServices" minOccurs="0"/>
+ *         <element name="AccessPoint" type="{http://www.iec.ch/61850/2003/SCL}tAccessPoint" maxOccurs="unbounded"/>
+ *         <element name="KDC" type="{http://www.iec.ch/61850/2003/SCL}tKDC" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="IEDSourceFiles" type="{http://www.iec.ch/61850/2003/SCL}tIEDSclRef" minOccurs="0"/>
+ *         <element name="MinRequestedSCDFiles" type="{http://www.iec.ch/61850/2003/SCL}tMinRequestedSCDFiles" minOccurs="0"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tIEDName" />
+ *       <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="manufacturer" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="configVersion" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="originalSclVersion" type="{http://www.iec.ch/61850/2003/SCL}tSclVersion" default="2003" />
+ *       <attribute name="originalSclRevision" type="{http://www.iec.ch/61850/2003/SCL}tSclRevision" default="A" />
+ *       <attribute name="originalSclRelease" type="{http://www.iec.ch/61850/2003/SCL}tSclRelease" default="1" />
+ *       <attribute name="engRight" type="{http://www.iec.ch/61850/2003/SCL}tRightEnum" default="full" />
+ *       <attribute name="owner" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tIED", propOrder = { + "services", + "accessPoint", + "kdc", + "iedSourceFiles", + "minRequestedSCDFiles", + "labels" +}) +public class TIED + extends TUnNaming +{ + + @XmlElement(name = "Services") + protected TServices services; + @XmlElement(name = "AccessPoint", required = true) + protected List accessPoint; + @XmlElement(name = "KDC") + protected List kdc; + @XmlElement(name = "IEDSourceFiles") + protected TIEDSclRef iedSourceFiles; + @XmlElement(name = "MinRequestedSCDFiles") + protected TMinRequestedSCDFiles minRequestedSCDFiles; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String name; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String type; + @XmlAttribute(name = "manufacturer") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String manufacturer; + @XmlAttribute(name = "configVersion") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String configVersion; + @XmlAttribute(name = "originalSclVersion") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String originalSclVersion; + @XmlAttribute(name = "originalSclRevision") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String originalSclRevision; + @XmlAttribute(name = "originalSclRelease") + protected Short originalSclRelease; + @XmlAttribute(name = "engRight") + protected TRightEnum engRight; + @XmlAttribute(name = "owner") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String owner; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * 获取services属性的值。 + * + * @return + * possible object is + * {@link TServices } + * + */ + public TServices getServices() { + return services; + } + + /** + * 设置services属性的值。 + * + * @param value + * allowed object is + * {@link TServices } + * + */ + public void setServices(TServices value) { + this.services = value; + } + + /** + * Gets the value of the accessPoint property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the accessPoint property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getAccessPoint().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TAccessPoint } + * + * + */ + public List getAccessPoint() { + if (accessPoint == null) { + accessPoint = new ArrayList(); + } + return this.accessPoint; + } + + /** + * Gets the value of the kdc property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the kdc property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getKDC().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TKDC } + * + * + */ + public List getKDC() { + if (kdc == null) { + kdc = new ArrayList(); + } + return this.kdc; + } + + /** + * 获取iedSourceFiles属性的值。 + * + * @return + * possible object is + * {@link TIEDSclRef } + * + */ + public TIEDSclRef getIEDSourceFiles() { + return iedSourceFiles; + } + + /** + * 设置iedSourceFiles属性的值。 + * + * @param value + * allowed object is + * {@link TIEDSclRef } + * + */ + public void setIEDSourceFiles(TIEDSclRef value) { + this.iedSourceFiles = value; + } + + /** + * 获取minRequestedSCDFiles属性的值。 + * + * @return + * possible object is + * {@link TMinRequestedSCDFiles } + * + */ + public TMinRequestedSCDFiles getMinRequestedSCDFiles() { + return minRequestedSCDFiles; + } + + /** + * 设置minRequestedSCDFiles属性的值。 + * + * @param value + * allowed object is + * {@link TMinRequestedSCDFiles } + * + */ + public void setMinRequestedSCDFiles(TMinRequestedSCDFiles value) { + this.minRequestedSCDFiles = value; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * 获取manufacturer属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getManufacturer() { + return manufacturer; + } + + /** + * 设置manufacturer属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setManufacturer(String value) { + this.manufacturer = value; + } + + /** + * 获取configVersion属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getConfigVersion() { + return configVersion; + } + + /** + * 设置configVersion属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setConfigVersion(String value) { + this.configVersion = value; + } + + /** + * 获取originalSclVersion属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getOriginalSclVersion() { + if (originalSclVersion == null) { + return "2003"; + } else { + return originalSclVersion; + } + } + + /** + * 设置originalSclVersion属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOriginalSclVersion(String value) { + this.originalSclVersion = value; + } + + /** + * 获取originalSclRevision属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getOriginalSclRevision() { + if (originalSclRevision == null) { + return "A"; + } else { + return originalSclRevision; + } + } + + /** + * 设置originalSclRevision属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOriginalSclRevision(String value) { + this.originalSclRevision = value; + } + + /** + * 获取originalSclRelease属性的值。 + * + * @return + * possible object is + * {@link Short } + * + */ + public short getOriginalSclRelease() { + if (originalSclRelease == null) { + return ((short) 1); + } else { + return originalSclRelease; + } + } + + /** + * 设置originalSclRelease属性的值。 + * + * @param value + * allowed object is + * {@link Short } + * + */ + public void setOriginalSclRelease(Short value) { + this.originalSclRelease = value; + } + + /** + * 获取engRight属性的值。 + * + * @return + * possible object is + * {@link TRightEnum } + * + */ + public TRightEnum getEngRight() { + if (engRight == null) { + return TRightEnum.FULL; + } else { + return engRight; + } + } + + /** + * 设置engRight属性的值。 + * + * @param value + * allowed object is + * {@link TRightEnum } + * + */ + public void setEngRight(TRightEnum value) { + this.engRight = value; + } + + /** + * 获取owner属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getOwner() { + return owner; + } + + /** + * 设置owner属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setOwner(String value) { + this.owner = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIEDSclRef.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIEDSclRef.java new file mode 100644 index 0000000..d0bb5d6 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TIEDSclRef.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tIEDSclRef complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tIEDSclRef">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <sequence>
+ *         <element name="SclFileReference" type="{http://www.iec.ch/61850/2003/SCL}tSclFileUUIDReference" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tIEDSclRef", propOrder = { + "sclFileReference" +}) +public class TIEDSclRef + extends TBaseElement +{ + + @XmlElement(name = "SclFileReference") + protected List sclFileReference; + + /** + * Gets the value of the sclFileReference property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the sclFileReference property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSclFileReference().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSclFileUUIDReference } + * + * + */ + public List getSclFileReference() { + if (sclFileReference == null) { + sclFileReference = new ArrayList(); + } + return this.sclFileReference; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TInputs.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TInputs.java new file mode 100644 index 0000000..62daf02 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TInputs.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tInputs complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tInputs">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="ExtRef" type="{http://www.iec.ch/61850/2003/SCL}tExtRef" maxOccurs="unbounded"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tInputs", propOrder = { + "extRef" +}) +public class TInputs + extends TUnNaming +{ + + @XmlElement(name = "ExtRef", required = true) + protected List extRef; + + /** + * Gets the value of the extRef property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the extRef property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getExtRef().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TExtRef } + * + * + */ + public List getExtRef() { + if (extRef == null) { + extRef = new ArrayList(); + } + return this.extRef; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TKDC.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TKDC.java new file mode 100644 index 0000000..e4804b7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TKDC.java @@ -0,0 +1,124 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tKDC complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tKDC">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="iedName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tIEDName" />
+ *       <attribute name="apName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *       <attribute name="apUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tKDC") +public class TKDC { + + @XmlAttribute(name = "iedName", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String iedName; + @XmlAttribute(name = "apName", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String apName; + @XmlAttribute(name = "apUuid") + protected String apUuid; + + /** + * 获取iedName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedName() { + return iedName; + } + + /** + * 设置iedName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedName(String value) { + this.iedName = value; + } + + /** + * 获取apName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApName() { + return apName; + } + + /** + * 设置apName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApName(String value) { + this.apName = value; + } + + /** + * 获取apUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApUuid() { + return apUuid; + } + + /** + * 设置apUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApUuid(String value) { + this.apUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLDevice.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLDevice.java new file mode 100644 index 0000000..46f5f1d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLDevice.java @@ -0,0 +1,275 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLDevice complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLDevice">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}LN0"/>
+ *         <element ref="{http://www.iec.ch/61850/2003/SCL}LN" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="AccessControl" type="{http://www.iec.ch/61850/2003/SCL}tAccessControl" minOccurs="0"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="inst" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+ *       <attribute name="ldName" type="{http://www.iec.ch/61850/2003/SCL}tLDName" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLDevice", propOrder = { + "ln0", + "ln", + "accessControl", + "labels" +}) +public class TLDevice + extends TUnNaming +{ + + @XmlElement(name = "LN0", required = true) + protected LN0 ln0; + @XmlElement(name = "LN") + protected List ln; + @XmlElement(name = "AccessControl") + protected TAccessControl accessControl; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "inst", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String inst; + @XmlAttribute(name = "ldName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldName; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * 获取ln0属性的值。 + * + * @return + * possible object is + * {@link LN0 } + * + */ + public LN0 getLN0() { + return ln0; + } + + /** + * 设置ln0属性的值。 + * + * @param value + * allowed object is + * {@link LN0 } + * + */ + public void setLN0(LN0 value) { + this.ln0 = value; + } + + /** + * Gets the value of the ln property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the ln property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLN().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLN } + * + * + */ + public List getLN() { + if (ln == null) { + ln = new ArrayList(); + } + return this.ln; + } + + /** + * 获取accessControl属性的值。 + * + * @return + * possible object is + * {@link TAccessControl } + * + */ + public TAccessControl getAccessControl() { + return accessControl; + } + + /** + * 设置accessControl属性的值。 + * + * @param value + * allowed object is + * {@link TAccessControl } + * + */ + public void setAccessControl(TAccessControl value) { + this.accessControl = value; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取inst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getInst() { + return inst; + } + + /** + * 设置inst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInst(String value) { + this.inst = value; + } + + /** + * 获取ldName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdName() { + return ldName; + } + + /** + * 设置ldName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdName(String value) { + this.ldName = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLLN0Enum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLLN0Enum.java new file mode 100644 index 0000000..0e56c72 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLLN0Enum.java @@ -0,0 +1,55 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tLLN0Enum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tLLN0Enum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="LLN0"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tLLN0Enum") +@XmlEnum +public enum TLLN0Enum { + + @XmlEnumValue("LLN0") + LLN_0("LLN0"); + private final String value; + + TLLN0Enum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TLLN0Enum fromValue(String v) { + for (TLLN0Enum c: TLLN0Enum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLN.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLN.java new file mode 100644 index 0000000..f69dc80 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLN.java @@ -0,0 +1,137 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLN complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLN">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAnyLN">
+ *       <attribute name="prefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" default="" />
+ *       <attribute name="lnClass" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *       <attribute name="inst" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLNInst" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLN") +public class TLN + extends TAnyLN +{ + + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass", required = true) + protected List lnClass; + @XmlAttribute(name = "inst", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String inst; + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + if (prefix == null) { + return ""; + } else { + return prefix; + } + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取inst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getInst() { + return inst; + } + + /** + * 设置inst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInst(String value) { + this.inst = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLN0.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLN0.java new file mode 100644 index 0000000..642c4c8 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLN0.java @@ -0,0 +1,213 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLN0 complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLN0">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAnyLN">
+ *       <sequence>
+ *         <element name="GSEControl" type="{http://www.iec.ch/61850/2003/SCL}tGSEControl" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="SampledValueControl" type="{http://www.iec.ch/61850/2003/SCL}tSampledValueControl" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="SettingControl" type="{http://www.iec.ch/61850/2003/SCL}tSettingControl" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="lnClass" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" fixed="LLN0" />
+ *       <attribute name="inst" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" fixed="" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLN0", propOrder = { + "gseControl", + "sampledValueControl", + "settingControl" +}) +@XmlSeeAlso({ + LN0 .class +}) +public class TLN0 + extends TAnyLN +{ + + @XmlElement(name = "GSEControl") + protected List gseControl; + @XmlElement(name = "SampledValueControl") + protected List sampledValueControl; + @XmlElement(name = "SettingControl") + protected TSettingControl settingControl; + @XmlAttribute(name = "lnClass", required = true) + protected List lnClass; + @XmlAttribute(name = "inst", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String inst; + + /** + * Gets the value of the gseControl property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gseControl property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGSEControl().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TGSEControl } + * + * + */ + public List getGSEControl() { + if (gseControl == null) { + gseControl = new ArrayList(); + } + return this.gseControl; + } + + /** + * Gets the value of the sampledValueControl property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the sampledValueControl property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSampledValueControl().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSampledValueControl } + * + * + */ + public List getSampledValueControl() { + if (sampledValueControl == null) { + sampledValueControl = new ArrayList(); + } + return this.sampledValueControl; + } + + /** + * 获取settingControl属性的值。 + * + * @return + * possible object is + * {@link TSettingControl } + * + */ + public TSettingControl getSettingControl() { + return settingControl; + } + + /** + * 设置settingControl属性的值。 + * + * @param value + * allowed object is + * {@link TSettingControl } + * + */ + public void setSettingControl(TSettingControl value) { + this.settingControl = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取inst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getInst() { + if (inst == null) { + return ""; + } else { + return inst; + } + } + + /** + * 设置inst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInst(String value) { + this.inst = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNode.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNode.java new file mode 100644 index 0000000..be55675 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNode.java @@ -0,0 +1,342 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLNode complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLNode">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="iedName" type="{http://www.iec.ch/61850/2003/SCL}tIEDNameOrNone" default="None" />
+ *       <attribute name="ldInst" type="{http://www.iec.ch/61850/2003/SCL}tLDInstOrEmpty" default="" />
+ *       <attribute name="prefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" default="" />
+ *       <attribute name="lnClass" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *       <attribute name="lnInst" type="{http://www.iec.ch/61850/2003/SCL}tLNInstOrEmpty" default="" />
+ *       <attribute name="lnType" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="lnUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLNode", propOrder = { + "labels" +}) +public class TLNode + extends TUnNaming +{ + + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "iedName") + protected String iedName; + @XmlAttribute(name = "ldInst") + protected String ldInst; + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass", required = true) + protected List lnClass; + @XmlAttribute(name = "lnInst") + protected String lnInst; + @XmlAttribute(name = "lnType") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String lnType; + @XmlAttribute(name = "lnUuid") + protected String lnUuid; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取iedName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedName() { + if (iedName == null) { + return "None"; + } else { + return iedName; + } + } + + /** + * 设置iedName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedName(String value) { + this.iedName = value; + } + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + if (ldInst == null) { + return ""; + } else { + return ldInst; + } + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + if (prefix == null) { + return ""; + } else { + return prefix; + } + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取lnInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnInst() { + if (lnInst == null) { + return ""; + } else { + return lnInst; + } + } + + /** + * 设置lnInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnInst(String value) { + this.lnInst = value; + } + + /** + * 获取lnType属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnType() { + return lnType; + } + + /** + * 设置lnType属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnType(String value) { + this.lnType = value; + } + + /** + * 获取lnUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnUuid() { + return lnUuid; + } + + /** + * 设置lnUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnUuid(String value) { + this.lnUuid = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNodeContainer.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNodeContainer.java new file mode 100644 index 0000000..249d7b2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNodeContainer.java @@ -0,0 +1,84 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tLNodeContainer complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLNodeContainer">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tNaming">
+ *       <sequence>
+ *         <element name="LNode" type="{http://www.iec.ch/61850/2003/SCL}tLNode" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLNodeContainer", propOrder = { + "lNode" +}) +@XmlSeeAlso({ + TConnectivityNode.class, + TPowerSystemResource.class +}) +public abstract class TLNodeContainer + extends TNaming +{ + + @XmlElement(name = "LNode") + protected List lNode; + + /** + * Gets the value of the lNode property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lNode property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLNode().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLNode } + * + * + */ + public List getLNode() { + if (lNode == null) { + lNode = new ArrayList(); + } + return this.lNode; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNodeType.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNodeType.java new file mode 100644 index 0000000..3880238 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLNodeType.java @@ -0,0 +1,174 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLNodeType complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLNodeType">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tIDNaming">
+ *       <sequence>
+ *         <element name="DO" type="{http://www.iec.ch/61850/2003/SCL}tDO" maxOccurs="unbounded"/>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="iedType" type="{http://www.iec.ch/61850/2003/SCL}tAnyName" default="" />
+ *       <attribute name="lnClass" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLNodeType", propOrder = { + "_do", + "labels" +}) +public class TLNodeType + extends TIDNaming +{ + + @XmlElement(name = "DO", required = true) + protected List _do; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "iedType") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String iedType; + @XmlAttribute(name = "lnClass", required = true) + protected List lnClass; + + /** + * Gets the value of the do property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the do property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getDO().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TDO } + * + * + */ + public List getDO() { + if (_do == null) { + _do = new ArrayList(); + } + return this._do; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取iedType属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getIedType() { + if (iedType == null) { + return ""; + } else { + return iedType; + } + } + + /** + * 设置iedType属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIedType(String value) { + this.iedType = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLPHDEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLPHDEnum.java new file mode 100644 index 0000000..7879c4e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLPHDEnum.java @@ -0,0 +1,43 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tLPHDEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tLPHDEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="LPHD"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tLPHDEnum") +@XmlEnum +public enum TLPHDEnum { + + LPHD; + + public String value() { + return name(); + } + + public static TLPHDEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLabel.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLabel.java new file mode 100644 index 0000000..c789658 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLabel.java @@ -0,0 +1,130 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLabel complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLabel">
+ *   <simpleContent>
+ *     <extension base="<http://www.w3.org/2001/XMLSchema>normalizedString">
+ *       <attribute name="id" type="{http://www.iec.ch/61850/2003/SCL}tID" />
+ *       <attribute name="lang" use="required" type="{http://www.w3.org/2001/XMLSchema}language" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLabel", propOrder = { + "value" +}) +public class TLabel { + + @XmlValue + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String value; + @XmlAttribute(name = "id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String id; + @XmlAttribute(name = "lang", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "language") + protected String lang; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取id属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * 设置id属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * 获取lang属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLang() { + return lang; + } + + /** + * 设置lang属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLang(String value) { + this.lang = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLabels.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLabels.java new file mode 100644 index 0000000..a21468b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLabels.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tLabels complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLabels">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Label" type="{http://www.iec.ch/61850/2003/SCL}tLabel" maxOccurs="unbounded"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLabels", propOrder = { + "label" +}) +public class TLabels + extends TUnNaming +{ + + @XmlElement(name = "Label", required = true) + protected List label; + + /** + * Gets the value of the label property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the label property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLabel().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLabel } + * + * + */ + public List getLabel() { + if (label == null) { + label = new ArrayList(); + } + return this.label; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLine.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLine.java new file mode 100644 index 0000000..85b9616 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLine.java @@ -0,0 +1,238 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLine complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLine">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipmentContainer">
+ *       <sequence>
+ *         <element name="Voltage" type="{http://www.iec.ch/61850/2003/SCL}tVoltage" minOccurs="0"/>
+ *         <element name="ConductingEquipment" type="{http://www.iec.ch/61850/2003/SCL}tConductingEquipment" maxOccurs="unbounded"/>
+ *         <element name="ConnectivityNode" type="{http://www.iec.ch/61850/2003/SCL}tConnectivityNode" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" type="{http://www.iec.ch/61850/2003/SCL}tLineType" />
+ *       <attribute name="nomFreq">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}decimal">
+ *             <minInclusive value="0"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="numPhases">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedByte">
+ *             <minExclusive value="0"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLine", propOrder = { + "voltage", + "conductingEquipment", + "connectivityNode" +}) +public class TLine + extends TGeneralEquipmentContainer +{ + + @XmlElement(name = "Voltage") + protected TVoltage voltage; + @XmlElement(name = "ConductingEquipment", required = true) + protected List conductingEquipment; + @XmlElement(name = "ConnectivityNode") + protected List connectivityNode; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String type; + @XmlAttribute(name = "nomFreq") + protected BigDecimal nomFreq; + @XmlAttribute(name = "numPhases") + protected Short numPhases; + + /** + * 获取voltage属性的值。 + * + * @return + * possible object is + * {@link TVoltage } + * + */ + public TVoltage getVoltage() { + return voltage; + } + + /** + * 设置voltage属性的值。 + * + * @param value + * allowed object is + * {@link TVoltage } + * + */ + public void setVoltage(TVoltage value) { + this.voltage = value; + } + + /** + * Gets the value of the conductingEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the conductingEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConductingEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConductingEquipment } + * + * + */ + public List getConductingEquipment() { + if (conductingEquipment == null) { + conductingEquipment = new ArrayList(); + } + return this.conductingEquipment; + } + + /** + * Gets the value of the connectivityNode property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the connectivityNode property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConnectivityNode().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConnectivityNode } + * + * + */ + public List getConnectivityNode() { + if (connectivityNode == null) { + connectivityNode = new ArrayList(); + } + return this.connectivityNode; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * 获取nomFreq属性的值。 + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getNomFreq() { + return nomFreq; + } + + /** + * 设置nomFreq属性的值。 + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setNomFreq(BigDecimal value) { + this.nomFreq = value; + } + + /** + * 获取numPhases属性的值。 + * + * @return + * possible object is + * {@link Short } + * + */ + public Short getNumPhases() { + return numPhases; + } + + /** + * 设置numPhases属性的值。 + * + * @param value + * allowed object is + * {@link Short } + * + */ + public void setNumPhases(Short value) { + this.numPhases = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLog.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLog.java new file mode 100644 index 0000000..9beb266 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLog.java @@ -0,0 +1,71 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLog complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLog">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <attribute name="name" type="{http://www.iec.ch/61850/2003/SCL}tLogName" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLog") +public class TLog + extends TUnNaming +{ + + @XmlAttribute(name = "name") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String name; + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLogControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLogControl.java new file mode 100644 index 0000000..46dc314 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLogControl.java @@ -0,0 +1,289 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tLogControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLogControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControlWithTriggerOpt">
+ *       <attribute name="ldInst" type="{http://www.iec.ch/61850/2003/SCL}tLDInst" />
+ *       <attribute name="prefix" type="{http://www.iec.ch/61850/2003/SCL}tPrefix" default="" />
+ *       <attribute name="lnClass" type="{http://www.iec.ch/61850/2003/SCL}tLNClassEnum" default="LLN0" />
+ *       <attribute name="lnInst" type="{http://www.iec.ch/61850/2003/SCL}tLNInst" />
+ *       <attribute name="logName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tLogName" />
+ *       <attribute name="logEna" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="reasonCode" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="bufTime" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" default="0" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLogControl") +public class TLogControl + extends TControlWithTriggerOpt +{ + + @XmlAttribute(name = "ldInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String ldInst; + @XmlAttribute(name = "prefix") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String prefix; + @XmlAttribute(name = "lnClass") + protected List lnClass; + @XmlAttribute(name = "lnInst") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String lnInst; + @XmlAttribute(name = "logName", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String logName; + @XmlAttribute(name = "logEna") + protected Boolean logEna; + @XmlAttribute(name = "reasonCode") + protected Boolean reasonCode; + @XmlAttribute(name = "bufTime") + @XmlSchemaType(name = "unsignedInt") + protected Long bufTime; + + /** + * 获取ldInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLdInst() { + return ldInst; + } + + /** + * 设置ldInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLdInst(String value) { + this.ldInst = value; + } + + /** + * 获取prefix属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getPrefix() { + if (prefix == null) { + return ""; + } else { + return prefix; + } + } + + /** + * 设置prefix属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPrefix(String value) { + this.prefix = value; + } + + /** + * Gets the value of the lnClass property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lnClass property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLnClass().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getLnClass() { + if (lnClass == null) { + lnClass = new ArrayList(); + } + return this.lnClass; + } + + /** + * 获取lnInst属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLnInst() { + return lnInst; + } + + /** + * 设置lnInst属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLnInst(String value) { + this.lnInst = value; + } + + /** + * 获取logName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLogName() { + return logName; + } + + /** + * 设置logName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLogName(String value) { + this.logName = value; + } + + /** + * 获取logEna属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isLogEna() { + if (logEna == null) { + return true; + } else { + return logEna; + } + } + + /** + * 设置logEna属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setLogEna(Boolean value) { + this.logEna = value; + } + + /** + * 获取reasonCode属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isReasonCode() { + if (reasonCode == null) { + return true; + } else { + return reasonCode; + } + } + + /** + * 设置reasonCode属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setReasonCode(Boolean value) { + this.reasonCode = value; + } + + /** + * 获取bufTime属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public long getBufTime() { + if (bufTime == null) { + return 0L; + } else { + return bufTime; + } + } + + /** + * 设置bufTime属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setBufTime(Long value) { + this.bufTime = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLogSettings.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLogSettings.java new file mode 100644 index 0000000..348274f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TLogSettings.java @@ -0,0 +1,133 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tLogSettings complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tLogSettings">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceSettings">
+ *       <attribute name="logEna" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="trgOps" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="intgPd" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tLogSettings") +public class TLogSettings + extends TServiceSettings +{ + + @XmlAttribute(name = "logEna") + protected TServiceSettingsEnum logEna; + @XmlAttribute(name = "trgOps") + protected TServiceSettingsEnum trgOps; + @XmlAttribute(name = "intgPd") + protected TServiceSettingsEnum intgPd; + + /** + * 获取logEna属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getLogEna() { + if (logEna == null) { + return TServiceSettingsEnum.FIX; + } else { + return logEna; + } + } + + /** + * 设置logEna属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setLogEna(TServiceSettingsEnum value) { + this.logEna = value; + } + + /** + * 获取trgOps属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getTrgOps() { + if (trgOps == null) { + return TServiceSettingsEnum.FIX; + } else { + return trgOps; + } + } + + /** + * 设置trgOps属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setTrgOps(TServiceSettingsEnum value) { + this.trgOps = value; + } + + /** + * 获取intgPd属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getIntgPd() { + if (intgPd == null) { + return TServiceSettingsEnum.FIX; + } else { + return intgPd; + } + } + + /** + * 设置intgPd属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setIntgPd(TServiceSettingsEnum value) { + this.intgPd = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMcSecurity.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMcSecurity.java new file mode 100644 index 0000000..91d4d39 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMcSecurity.java @@ -0,0 +1,100 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tMcSecurity complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tMcSecurity">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="signature" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="encryption" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tMcSecurity") +public class TMcSecurity { + + @XmlAttribute(name = "signature") + protected Boolean signature; + @XmlAttribute(name = "encryption") + protected Boolean encryption; + + /** + * 获取signature属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSignature() { + if (signature == null) { + return false; + } else { + return signature; + } + } + + /** + * 设置signature属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSignature(Boolean value) { + this.signature = value; + } + + /** + * 获取encryption属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isEncryption() { + if (encryption == null) { + return false; + } else { + return encryption; + } + } + + /** + * 设置encryption属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setEncryption(Boolean value) { + this.encryption = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMinRequestedSCDFile.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMinRequestedSCDFile.java new file mode 100644 index 0000000..88d93e1 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMinRequestedSCDFile.java @@ -0,0 +1,50 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + * + * Restriction of the tSclFileUUIDReference to express the SCD file resquest to properly configure an IED + * + * + *

tMinRequestedSCDFile complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tMinRequestedSCDFile">
+ *   <complexContent>
+ *     <restriction base="{http://www.iec.ch/61850/2003/SCL}tSclFileUUIDReference">
+ *       <attribute name="fileType" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.iec.ch/61850/2003/SCL}tSCLFileType">
+ *             <enumeration value="SCD"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tMinRequestedSCDFile") +public class TMinRequestedSCDFile + extends TSclFileUUIDReference +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMinRequestedSCDFiles.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMinRequestedSCDFiles.java new file mode 100644 index 0000000..98207b7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TMinRequestedSCDFiles.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tMinRequestedSCDFiles complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tMinRequestedSCDFiles">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <sequence>
+ *         <element name="MinRequestedSCDFile" type="{http://www.iec.ch/61850/2003/SCL}tMinRequestedSCDFile" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tMinRequestedSCDFiles", propOrder = { + "minRequestedSCDFile" +}) +public class TMinRequestedSCDFiles + extends TBaseElement +{ + + @XmlElement(name = "MinRequestedSCDFile") + protected List minRequestedSCDFile; + + /** + * Gets the value of the minRequestedSCDFile property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the minRequestedSCDFile property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getMinRequestedSCDFile().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TMinRequestedSCDFile } + * + * + */ + public List getMinRequestedSCDFile() { + if (minRequestedSCDFile == null) { + minRequestedSCDFile = new ArrayList(); + } + return this.minRequestedSCDFile; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TNaming.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TNaming.java new file mode 100644 index 0000000..fa27fe9 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TNaming.java @@ -0,0 +1,196 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tNaming complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tNaming">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <sequence>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agDesc"/>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agUuid"/>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tNaming", propOrder = { + "labels" +}) +@XmlSeeAlso({ + TLNodeContainer.class, + TCertificate.class, + TSubNetwork.class +}) +public abstract class TNaming + extends TBaseElement +{ + + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String name; + @XmlAttribute(name = "desc") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String desc; + @XmlAttribute(name = "uuid") + protected String uuid; + @XmlAttribute(name = "templateUuid") + protected String templateUuid; + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取desc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesc() { + if (desc == null) { + return ""; + } else { + return desc; + } + } + + /** + * 设置desc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesc(String value) { + this.desc = value; + } + + /** + * 获取uuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUuid() { + return uuid; + } + + /** + * 设置uuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUuid(String value) { + this.uuid = value; + } + + /** + * 获取templateUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getTemplateUuid() { + return templateUuid; + } + + /** + * 设置templateUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTemplateUuid(String value) { + this.templateUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TOutputs.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TOutputs.java new file mode 100644 index 0000000..e941a8c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TOutputs.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tOutputs complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tOutputs">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="ExtCtrl" type="{http://www.iec.ch/61850/2003/SCL}tExtCtrl" maxOccurs="unbounded"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tOutputs", propOrder = { + "extCtrl" +}) +public class TOutputs + extends TUnNaming +{ + + @XmlElement(name = "ExtCtrl", required = true) + protected List extCtrl; + + /** + * Gets the value of the extCtrl property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the extCtrl property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getExtCtrl().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TExtCtrl } + * + * + */ + public List getExtCtrl() { + if (extCtrl == null) { + extCtrl = new ArrayList(); + } + return this.extCtrl; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TP.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TP.java new file mode 100644 index 0000000..002fd77 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TP.java @@ -0,0 +1,121 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tP complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP">
+ *   <simpleContent>
+ *     <extension base="<http://www.iec.ch/61850/2003/SCL>tPAddr">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP", propOrder = { + "value" +}) +@XmlSeeAlso({ + TPIPv6SUBNET.class, + TPDNSName.class, + TPIPv6FlowLabel.class, + TPOSINSAP.class, + TPOSITSEL.class, + TPOSISSEL.class, + TPOSIPSEL.class, + TPOSIAPTitle.class, + TPOSIAPInvoke.class, + TPOSIAEQualifier.class, + TPOSIAEInvoke.class, + TPMACAddress.class, + TPAPPID.class, + TPVLANPRIORITY.class, + TPVLANID.class, + TPPort.class, + TPIPv6ClassOfTraffic.class, + TPC37118IPPort.class, + TPIPv6Base.class, + TPIPbase.class, + TPIPClassOfTraffic.class +}) +public class TP { + + @XmlValue + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String value; + @XmlAttribute(name = "type", required = true) + protected String type; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPAPPID.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPAPPID.java new file mode 100644 index 0000000..6b71cfd --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPAPPID.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_APPID complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_APPID">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="APPID" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_APPID") +public class TPAPPID + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPC37118IPPort.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPC37118IPPort.java new file mode 100644 index 0000000..caaacf2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPC37118IPPort.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_C37-118-IP-Port complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_C37-118-IP-Port">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="C37-118-IP-Port" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_C37-118-IP-Port") +public class TPC37118IPPort + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPDNSName.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPDNSName.java new file mode 100644 index 0000000..fc25338 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPDNSName.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_DNSName complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_DNSName">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="DNSName" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_DNSName") +public class TPDNSName + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIP.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIP.java new file mode 100644 index 0000000..bcc0a3b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIP.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IP complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IP">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_IPbase">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IP" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IP") +public class TPIP + extends TPIPbase +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPClassOfTraffic.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPClassOfTraffic.java new file mode 100644 index 0000000..4e5b96a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPClassOfTraffic.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IP-ClassOfTraffic complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IP-ClassOfTraffic">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IP-ClassOfTraffic" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IP-ClassOfTraffic") +public class TPIPClassOfTraffic + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPGATEWAY.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPGATEWAY.java new file mode 100644 index 0000000..71c2d50 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPGATEWAY.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IP-GATEWAY complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IP-GATEWAY">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_IPbase">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IP-GATEWAY" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IP-GATEWAY") +public class TPIPGATEWAY + extends TPIPbase +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPIGMPv3Src.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPIGMPv3Src.java new file mode 100644 index 0000000..439e217 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPIGMPv3Src.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IP-IGMPv3Src complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IP-IGMPv3Src">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_IPbase">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IP-IGMPv3Src" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IP-IGMPv3Src") +public class TPIPIGMPv3Src + extends TPIPbase +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPSUBNET.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPSUBNET.java new file mode 100644 index 0000000..cce1be2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPSUBNET.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IP-SUBNET complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IP-SUBNET">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_IPbase">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IP-SUBNET" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IP-SUBNET") +public class TPIPSUBNET + extends TPIPbase +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPbase.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPbase.java new file mode 100644 index 0000000..7f6f02d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPbase.java @@ -0,0 +1,46 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPbase complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPbase">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPbase") +@XmlSeeAlso({ + TPIP.class, + TPIPSUBNET.class, + TPIPGATEWAY.class, + TPIPIGMPv3Src.class +}) +public abstract class TPIPbase + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6.java new file mode 100644 index 0000000..89b96ca --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPv6 complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPv6">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_IPv6base">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IPv6" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPv6") +public class TPIPv6 + extends TPIPv6Base +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6Base.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6Base.java new file mode 100644 index 0000000..6e71fc5 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6Base.java @@ -0,0 +1,45 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPv6base complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPv6base">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPv6base") +@XmlSeeAlso({ + TPIPv6 .class, + TPIPv6GATEWAY.class, + TPIPv6IGMPv3Src.class +}) +public abstract class TPIPv6Base + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6ClassOfTraffic.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6ClassOfTraffic.java new file mode 100644 index 0000000..83f0ea7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6ClassOfTraffic.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPv6ClassOfTraffic complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPv6ClassOfTraffic">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IPv6ClassOfTraffic" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPv6ClassOfTraffic") +public class TPIPv6ClassOfTraffic + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6FlowLabel.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6FlowLabel.java new file mode 100644 index 0000000..155ff96 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6FlowLabel.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPv6FlowLabel complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPv6FlowLabel">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IPv6FlowLabel" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPv6FlowLabel") +public class TPIPv6FlowLabel + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6GATEWAY.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6GATEWAY.java new file mode 100644 index 0000000..1c5ee25 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6GATEWAY.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPv6-GATEWAY complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPv6-GATEWAY">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_IPv6base">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IPv6-GATEWAY" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPv6-GATEWAY") +public class TPIPv6GATEWAY + extends TPIPv6Base +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6IGMPv3Src.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6IGMPv3Src.java new file mode 100644 index 0000000..f146910 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6IGMPv3Src.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPv6-IGMPv3Src complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPv6-IGMPv3Src">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_IPv6base">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IPv6-IGMPv3Src" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPv6-IGMPv3Src") +public class TPIPv6IGMPv3Src + extends TPIPv6Base +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6SUBNET.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6SUBNET.java new file mode 100644 index 0000000..b4756e1 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPIPv6SUBNET.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_IPv6-SUBNET complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_IPv6-SUBNET">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IPv6-SUBNET" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_IPv6-SUBNET") +public class TPIPv6SUBNET + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPMACAddress.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPMACAddress.java new file mode 100644 index 0000000..1304812 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPMACAddress.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_MAC-Address complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_MAC-Address">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="MAC-Address" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_MAC-Address") +public class TPMACAddress + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPMMSPort.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPMMSPort.java new file mode 100644 index 0000000..d02141b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPMMSPort.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_MMS-Port complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_MMS-Port">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_Port">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="MMS-Port" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_MMS-Port") +public class TPMMSPort + extends TPPort +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAEInvoke.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAEInvoke.java new file mode 100644 index 0000000..f67d74d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAEInvoke.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_OSI-AE-Invoke complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-AE-Invoke">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-AE-Invoke" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-AE-Invoke") +public class TPOSIAEInvoke + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAEQualifier.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAEQualifier.java new file mode 100644 index 0000000..0c46341 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAEQualifier.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_OSI-AE-Qualifier complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-AE-Qualifier">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-AE-Qualifier" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-AE-Qualifier") +public class TPOSIAEQualifier + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAPInvoke.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAPInvoke.java new file mode 100644 index 0000000..33aa7ad --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAPInvoke.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_OSI-AP-Invoke complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-AP-Invoke">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-AP-Invoke" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-AP-Invoke") +public class TPOSIAPInvoke + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAPTitle.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAPTitle.java new file mode 100644 index 0000000..c1963ba --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIAPTitle.java @@ -0,0 +1,50 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + * + * Based upon SCL_Communication complexType name="tP_OSI-AP-Title" + * Old was pattern=[0-9,]+ (base type "tP" had restriction that minLength=1) + * Problem: did not verify that arcs were correct and also "," was hard to read (it is just a comma) + * New pattern is {first 2 arcs>}{remainder of arcs} + * First 2 arcs: 0,{0..39} OR 1,{0..39} OR 2,{0..N} (it is a good idea to but not required to limit N to 47) + * Remainder of arcs: at least one of: ,{decimal-digits} + * Pattern: ([01],([0-9]|[1-3][0-9])|2,[0-9]+)(,[0-9]+)+ + * + * + *

tP_OSI-AP-Title complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-AP-Title">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-AP-Title" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-AP-Title") +public class TPOSIAPTitle + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSINSAP.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSINSAP.java new file mode 100644 index 0000000..2d6a6cc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSINSAP.java @@ -0,0 +1,47 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + * + * Based upon SCL_Communication complexType name="tP_OSI-NSAP" + * Old was maxLength=40 pattern=[0-9A-F]+ (base type "tP" had restriction that minLength=1) + * Problem: did not verify that PAIRS of hex digits were used + * New pattern is "([0-9A-F][0-9A-F]){1,20}" + * + * + *

tP_OSI-NSAP complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-NSAP">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-NSAP" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-NSAP") +public class TPOSINSAP + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIPSEL.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIPSEL.java new file mode 100644 index 0000000..114f8bd --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSIPSEL.java @@ -0,0 +1,47 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + * + * Based upon SCL_Communication complexType name="tP_OSI-PSEL" + * Old was maxLength=16 pattern=[0-9A-F]+ (base type "tP" had restriction that minLength=1) + * Problem: did not verify that PAIRS of hex digits were used and NIL was not allowed + * New pattern is "NIL|([0-9A-F][0-9A-F]){1,8}" + * + * + *

tP_OSI-PSEL complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-PSEL">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-PSEL" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-PSEL") +public class TPOSIPSEL + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSISSEL.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSISSEL.java new file mode 100644 index 0000000..ac5c73c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSISSEL.java @@ -0,0 +1,47 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + * + * Based upon SCL_Communication complexType name="tP_OSI-SSEL" + * Old was maxLength=16 pattern=[0-9A-F]+ (base type "tP" had restriction that minLength=1) + * Problem: did not verify that PAIRS of hex digits were used and NIL was not allowed + * New pattern is "NIL|([0-9A-F][0-9A-F]){1,8}" + * + * + *

tP_OSI-SSEL complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-SSEL">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-SSEL" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-SSEL") +public class TPOSISSEL + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSITSEL.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSITSEL.java new file mode 100644 index 0000000..845dfee --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPOSITSEL.java @@ -0,0 +1,47 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + * + * Based upon SCL_Communication complexType name="tP_OSI-TSEL" + * Old was maxLength=8 pattern=[0-9A-F]+ (base type "tP" had restriction that minLength=1) + * Problem: did not verify that PAIRS of hex digits were used and NIL was not allowed + * New pattern is "NIL|([0-9A-F][0-9A-F]){1,4}" + * + * + *

tP_OSI-TSEL complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_OSI-TSEL">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="OSI-TSEL" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_OSI-TSEL") +public class TPOSITSEL + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPPhysConn.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPPhysConn.java new file mode 100644 index 0000000..2e56cda --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPPhysConn.java @@ -0,0 +1,97 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tP_PhysConn complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_PhysConn">
+ *   <simpleContent>
+ *     <extension base="<http://www.iec.ch/61850/2003/SCL>tPAddr">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypePhysConnEnum" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_PhysConn", propOrder = { + "value" +}) +public class TPPhysConn { + + @XmlValue + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String value; + @XmlAttribute(name = "type", required = true) + protected String type; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPPort.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPPort.java new file mode 100644 index 0000000..dd5b87d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPPort.java @@ -0,0 +1,46 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_Port complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_Port">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_Port") +@XmlSeeAlso({ + TPSNTPPort.class, + TPMMSPort.class, + TPUDPPort.class, + TPTCPPort.class +}) +public abstract class TPPort + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPSNTPPort.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPSNTPPort.java new file mode 100644 index 0000000..52c319a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPSNTPPort.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_SNTP-Port complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_SNTP-Port">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_Port">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="SNTP-Port" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_SNTP-Port") +public class TPSNTPPort + extends TPPort +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPTCPPort.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPTCPPort.java new file mode 100644 index 0000000..6a953bb --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPTCPPort.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_TCP-Port complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_TCP-Port">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_Port">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IP-TCP-PORT" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_TCP-Port") +public class TPTCPPort + extends TPPort +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPUDPPort.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPUDPPort.java new file mode 100644 index 0000000..e461f1b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPUDPPort.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_UDP-Port complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_UDP-Port">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP_Port">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="IP-UDP-PORT" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_UDP-Port") +public class TPUDPPort + extends TPPort +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPVLANID.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPVLANID.java new file mode 100644 index 0000000..d2f42b5 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPVLANID.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_VLAN-ID complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_VLAN-ID">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="VLAN-ID" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_VLAN-ID") +public class TPVLANID + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPVLANPRIORITY.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPVLANPRIORITY.java new file mode 100644 index 0000000..9163edd --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPVLANPRIORITY.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tP_VLAN-PRIORITY complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tP_VLAN-PRIORITY">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tP">
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPTypeEnum" fixed="VLAN-PRIORITY" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tP_VLAN-PRIORITY") +public class TPVLANPRIORITY + extends TP +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPhaseEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPhaseEnum.java new file mode 100644 index 0000000..8d86700 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPhaseEnum.java @@ -0,0 +1,72 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPhaseEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPhaseEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="A"/>
+ *     <enumeration value="B"/>
+ *     <enumeration value="C"/>
+ *     <enumeration value="N"/>
+ *     <enumeration value="all"/>
+ *     <enumeration value="none"/>
+ *     <enumeration value="AB"/>
+ *     <enumeration value="BC"/>
+ *     <enumeration value="CA"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPhaseEnum") +@XmlEnum +public enum TPhaseEnum { + + A("A"), + B("B"), + C("C"), + N("N"), + @XmlEnumValue("all") + ALL("all"), + @XmlEnumValue("none") + NONE("none"), + AB("AB"), + BC("BC"), + CA("CA"); + private final String value; + + TPhaseEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TPhaseEnum fromValue(String v) { + for (TPhaseEnum c: TPhaseEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPhysConn.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPhysConn.java new file mode 100644 index 0000000..5df88b4 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPhysConn.java @@ -0,0 +1,107 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPhysConn complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tPhysConn">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="P" type="{http://www.iec.ch/61850/2003/SCL}tP_PhysConn" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPhysConnTypeEnum" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tPhysConn", propOrder = { + "p" +}) +public class TPhysConn + extends TUnNaming +{ + + @XmlElement(name = "P") + protected List p; + @XmlAttribute(name = "type", required = true) + protected String type; + + /** + * Gets the value of the p property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the p property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getP().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TPPhysConn } + * + * + */ + public List getP() { + if (p == null) { + p = new ArrayList(); + } + return this.p; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerSystemResource.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerSystemResource.java new file mode 100644 index 0000000..565b96b --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerSystemResource.java @@ -0,0 +1,51 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPowerSystemResource complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tPowerSystemResource">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tLNodeContainer">
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tPowerSystemResource") +@XmlSeeAlso({ + TSubEquipment.class, + TTapChanger.class, + TEquipment.class, + TEquipmentContainer.class, + TFunction.class, + TSubFunction.class, + TAbstractEqFuncSubFunc.class, + TGeneralEquipmentContainer.class +}) +public abstract class TPowerSystemResource + extends TLNodeContainer +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerTransformer.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerTransformer.java new file mode 100644 index 0000000..49138c8 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerTransformer.java @@ -0,0 +1,177 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPowerTransformer complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tPowerTransformer">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tEquipment">
+ *       <sequence>
+ *         <element name="TransformerWinding" type="{http://www.iec.ch/61850/2003/SCL}tTransformerWinding" maxOccurs="unbounded"/>
+ *         <element name="SubEquipment" type="{http://www.iec.ch/61850/2003/SCL}tSubEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="EqFunction" type="{http://www.iec.ch/61850/2003/SCL}tEqFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tPowerTransformerEnum" fixed="PTR" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tPowerTransformer", propOrder = { + "transformerWinding", + "subEquipment", + "eqFunction" +}) +public class TPowerTransformer + extends TEquipment +{ + + @XmlElement(name = "TransformerWinding", required = true) + protected List transformerWinding; + @XmlElement(name = "SubEquipment") + protected List subEquipment; + @XmlElement(name = "EqFunction") + protected List eqFunction; + @XmlAttribute(name = "type", required = true) + protected TPowerTransformerEnum type; + + /** + * Gets the value of the transformerWinding property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the transformerWinding property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getTransformerWinding().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TTransformerWinding } + * + * + */ + public List getTransformerWinding() { + if (transformerWinding == null) { + transformerWinding = new ArrayList(); + } + return this.transformerWinding; + } + + /** + * Gets the value of the subEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the subEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubEquipment } + * + * + */ + public List getSubEquipment() { + if (subEquipment == null) { + subEquipment = new ArrayList(); + } + return this.subEquipment; + } + + /** + * Gets the value of the eqFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the eqFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEqFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEqFunction } + * + * + */ + public List getEqFunction() { + if (eqFunction == null) { + eqFunction = new ArrayList(); + } + return this.eqFunction; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link TPowerTransformerEnum } + * + */ + public TPowerTransformerEnum getType() { + if (type == null) { + return TPowerTransformerEnum.PTR; + } else { + return type; + } + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link TPowerTransformerEnum } + * + */ + public void setType(TPowerTransformerEnum value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerTransformerEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerTransformerEnum.java new file mode 100644 index 0000000..c22f6fe --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPowerTransformerEnum.java @@ -0,0 +1,43 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPowerTransformerEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPowerTransformerEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="PTR"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPowerTransformerEnum") +@XmlEnum +public enum TPowerTransformerEnum { + + PTR; + + public String value() { + return name(); + } + + public static TPowerTransformerEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedAttributeNameEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedAttributeNameEnum.java new file mode 100644 index 0000000..a3321f1 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedAttributeNameEnum.java @@ -0,0 +1,98 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedAttributeNameEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedAttributeNameEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="T"/>
+ *     <enumeration value="Test"/>
+ *     <enumeration value="Check"/>
+ *     <enumeration value="SIUnit"/>
+ *     <enumeration value="Oper"/>
+ *     <enumeration value="SBO"/>
+ *     <enumeration value="SBOw"/>
+ *     <enumeration value="Cancel"/>
+ *     <enumeration value="Addr"/>
+ *     <enumeration value="PRIORITY"/>
+ *     <enumeration value="VID"/>
+ *     <enumeration value="APPID"/>
+ *     <enumeration value="TransportInUse"/>
+ *     <enumeration value="IPClassOfTraffic"/>
+ *     <enumeration value="IPv6FlowLabel"/>
+ *     <enumeration value="IPAddressLength"/>
+ *     <enumeration value="IPAddress"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedAttributeNameEnum") +@XmlEnum +public enum TPredefinedAttributeNameEnum { + + T("T"), + @XmlEnumValue("Test") + TEST("Test"), + @XmlEnumValue("Check") + CHECK("Check"), + @XmlEnumValue("SIUnit") + SI_UNIT("SIUnit"), + @XmlEnumValue("Oper") + OPER("Oper"), + SBO("SBO"), + @XmlEnumValue("SBOw") + SB_OW("SBOw"), + @XmlEnumValue("Cancel") + CANCEL("Cancel"), + @XmlEnumValue("Addr") + ADDR("Addr"), + PRIORITY("PRIORITY"), + VID("VID"), + APPID("APPID"), + @XmlEnumValue("TransportInUse") + TRANSPORT_IN_USE("TransportInUse"), + @XmlEnumValue("IPClassOfTraffic") + IP_CLASS_OF_TRAFFIC("IPClassOfTraffic"), + @XmlEnumValue("IPv6FlowLabel") + I_PV_6_FLOW_LABEL("IPv6FlowLabel"), + @XmlEnumValue("IPAddressLength") + IP_ADDRESS_LENGTH("IPAddressLength"), + @XmlEnumValue("IPAddress") + IP_ADDRESS("IPAddress"); + private final String value; + + TPredefinedAttributeNameEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TPredefinedAttributeNameEnum fromValue(String v) { + for (TPredefinedAttributeNameEnum c: TPredefinedAttributeNameEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedBasicTypeEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedBasicTypeEnum.java new file mode 100644 index 0000000..68618fc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedBasicTypeEnum.java @@ -0,0 +1,165 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedBasicTypeEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedBasicTypeEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="BOOLEAN"/>
+ *     <enumeration value="INT8"/>
+ *     <enumeration value="INT16"/>
+ *     <enumeration value="INT24"/>
+ *     <enumeration value="INT32"/>
+ *     <enumeration value="INT64"/>
+ *     <enumeration value="INT128"/>
+ *     <enumeration value="INT8U"/>
+ *     <enumeration value="INT16U"/>
+ *     <enumeration value="INT24U"/>
+ *     <enumeration value="INT32U"/>
+ *     <enumeration value="FLOAT32"/>
+ *     <enumeration value="FLOAT64"/>
+ *     <enumeration value="Enum"/>
+ *     <enumeration value="Dbpos"/>
+ *     <enumeration value="Tcmd"/>
+ *     <enumeration value="Quality"/>
+ *     <enumeration value="Timestamp"/>
+ *     <enumeration value="VisString32"/>
+ *     <enumeration value="VisString64"/>
+ *     <enumeration value="VisString65"/>
+ *     <enumeration value="VisString129"/>
+ *     <enumeration value="VisString255"/>
+ *     <enumeration value="Octet64"/>
+ *     <enumeration value="Unicode255"/>
+ *     <enumeration value="Struct"/>
+ *     <enumeration value="EntryTime"/>
+ *     <enumeration value="Check"/>
+ *     <enumeration value="ObjRef"/>
+ *     <enumeration value="Currency"/>
+ *     <enumeration value="PhyComAddr"/>
+ *     <enumeration value="TrgOps"/>
+ *     <enumeration value="OptFlds"/>
+ *     <enumeration value="SvOptFlds"/>
+ *     <enumeration value="LogOptFlds"/>
+ *     <enumeration value="EntryID"/>
+ *     <enumeration value="Octet6"/>
+ *     <enumeration value="Octet16"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedBasicTypeEnum") +@XmlEnum +public enum TPredefinedBasicTypeEnum { + + BOOLEAN("BOOLEAN"), + @XmlEnumValue("INT8") + INT_8("INT8"), + @XmlEnumValue("INT16") + INT_16("INT16"), + @XmlEnumValue("INT24") + INT_24("INT24"), + @XmlEnumValue("INT32") + INT_32("INT32"), + @XmlEnumValue("INT64") + INT_64("INT64"), + @XmlEnumValue("INT128") + INT_128("INT128"), + @XmlEnumValue("INT8U") + INT_8_U("INT8U"), + @XmlEnumValue("INT16U") + INT_16_U("INT16U"), + @XmlEnumValue("INT24U") + INT_24_U("INT24U"), + @XmlEnumValue("INT32U") + INT_32_U("INT32U"), + @XmlEnumValue("FLOAT32") + FLOAT_32("FLOAT32"), + @XmlEnumValue("FLOAT64") + FLOAT_64("FLOAT64"), + @XmlEnumValue("Enum") + ENUM("Enum"), + @XmlEnumValue("Dbpos") + DBPOS("Dbpos"), + @XmlEnumValue("Tcmd") + TCMD("Tcmd"), + @XmlEnumValue("Quality") + QUALITY("Quality"), + @XmlEnumValue("Timestamp") + TIMESTAMP("Timestamp"), + @XmlEnumValue("VisString32") + VIS_STRING_32("VisString32"), + @XmlEnumValue("VisString64") + VIS_STRING_64("VisString64"), + @XmlEnumValue("VisString65") + VIS_STRING_65("VisString65"), + @XmlEnumValue("VisString129") + VIS_STRING_129("VisString129"), + @XmlEnumValue("VisString255") + VIS_STRING_255("VisString255"), + @XmlEnumValue("Octet64") + OCTET_64("Octet64"), + @XmlEnumValue("Unicode255") + UNICODE_255("Unicode255"), + @XmlEnumValue("Struct") + STRUCT("Struct"), + @XmlEnumValue("EntryTime") + ENTRY_TIME("EntryTime"), + @XmlEnumValue("Check") + CHECK("Check"), + @XmlEnumValue("ObjRef") + OBJ_REF("ObjRef"), + @XmlEnumValue("Currency") + CURRENCY("Currency"), + @XmlEnumValue("PhyComAddr") + PHY_COM_ADDR("PhyComAddr"), + @XmlEnumValue("TrgOps") + TRG_OPS("TrgOps"), + @XmlEnumValue("OptFlds") + OPT_FLDS("OptFlds"), + @XmlEnumValue("SvOptFlds") + SV_OPT_FLDS("SvOptFlds"), + @XmlEnumValue("LogOptFlds") + LOG_OPT_FLDS("LogOptFlds"), + @XmlEnumValue("EntryID") + ENTRY_ID("EntryID"), + @XmlEnumValue("Octet6") + OCTET_6("Octet6"), + @XmlEnumValue("Octet16") + OCTET_16("Octet16"); + private final String value; + + TPredefinedBasicTypeEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TPredefinedBasicTypeEnum fromValue(String v) { + for (TPredefinedBasicTypeEnum c: TPredefinedBasicTypeEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedCDCEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedCDCEnum.java new file mode 100644 index 0000000..e8900aa --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedCDCEnum.java @@ -0,0 +1,147 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedCDCEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedCDCEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="SPS"/>
+ *     <enumeration value="DPS"/>
+ *     <enumeration value="INS"/>
+ *     <enumeration value="ENS"/>
+ *     <enumeration value="ACT"/>
+ *     <enumeration value="ACD"/>
+ *     <enumeration value="SEC"/>
+ *     <enumeration value="BCR"/>
+ *     <enumeration value="HST"/>
+ *     <enumeration value="VSS"/>
+ *     <enumeration value="MV"/>
+ *     <enumeration value="CMV"/>
+ *     <enumeration value="SAV"/>
+ *     <enumeration value="WYE"/>
+ *     <enumeration value="DEL"/>
+ *     <enumeration value="SEQ"/>
+ *     <enumeration value="HMV"/>
+ *     <enumeration value="HWYE"/>
+ *     <enumeration value="HDEL"/>
+ *     <enumeration value="SPC"/>
+ *     <enumeration value="DPC"/>
+ *     <enumeration value="INC"/>
+ *     <enumeration value="ENC"/>
+ *     <enumeration value="BSC"/>
+ *     <enumeration value="ISC"/>
+ *     <enumeration value="APC"/>
+ *     <enumeration value="BAC"/>
+ *     <enumeration value="SPG"/>
+ *     <enumeration value="ING"/>
+ *     <enumeration value="ENG"/>
+ *     <enumeration value="ORG"/>
+ *     <enumeration value="TSG"/>
+ *     <enumeration value="CUG"/>
+ *     <enumeration value="VSG"/>
+ *     <enumeration value="ASG"/>
+ *     <enumeration value="CURVE"/>
+ *     <enumeration value="CSG"/>
+ *     <enumeration value="DPL"/>
+ *     <enumeration value="LPL"/>
+ *     <enumeration value="CSD"/>
+ *     <enumeration value="CST"/>
+ *     <enumeration value="BTS"/>
+ *     <enumeration value="UTS"/>
+ *     <enumeration value="LTS"/>
+ *     <enumeration value="GTS"/>
+ *     <enumeration value="MTS"/>
+ *     <enumeration value="NTS"/>
+ *     <enumeration value="STS"/>
+ *     <enumeration value="CTS"/>
+ *     <enumeration value="OTS"/>
+ *     <enumeration value="VSD"/>
+ *     <enumeration value="ORS"/>
+ *     <enumeration value="TCS"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedCDCEnum") +@XmlEnum +public enum TPredefinedCDCEnum { + + SPS, + DPS, + INS, + ENS, + ACT, + ACD, + SEC, + BCR, + HST, + VSS, + MV, + CMV, + SAV, + WYE, + DEL, + SEQ, + HMV, + HWYE, + HDEL, + SPC, + DPC, + INC, + ENC, + BSC, + ISC, + APC, + BAC, + SPG, + ING, + ENG, + ORG, + TSG, + CUG, + VSG, + ASG, + CURVE, + CSG, + DPL, + LPL, + CSD, + CST, + BTS, + UTS, + LTS, + GTS, + MTS, + NTS, + STS, + CTS, + OTS, + VSD, + ORS, + TCS; + + public String value() { + return name(); + } + + public static TPredefinedCDCEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedCommonConductingEquipmentEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedCommonConductingEquipmentEnum.java new file mode 100644 index 0000000..80a5187 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedCommonConductingEquipmentEnum.java @@ -0,0 +1,93 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedCommonConductingEquipmentEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedCommonConductingEquipmentEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="CBR"/>
+ *     <enumeration value="DIS"/>
+ *     <enumeration value="VTR"/>
+ *     <enumeration value="CTR"/>
+ *     <enumeration value="GEN"/>
+ *     <enumeration value="CAP"/>
+ *     <enumeration value="REA"/>
+ *     <enumeration value="CON"/>
+ *     <enumeration value="MOT"/>
+ *     <enumeration value="EFN"/>
+ *     <enumeration value="PSH"/>
+ *     <enumeration value="BAT"/>
+ *     <enumeration value="BSH"/>
+ *     <enumeration value="CAB"/>
+ *     <enumeration value="GIL"/>
+ *     <enumeration value="LIN"/>
+ *     <enumeration value="RES"/>
+ *     <enumeration value="RRC"/>
+ *     <enumeration value="SAR"/>
+ *     <enumeration value="TCF"/>
+ *     <enumeration value="TCR"/>
+ *     <enumeration value="IFL"/>
+ *     <enumeration value="FAN"/>
+ *     <enumeration value="SCR"/>
+ *     <enumeration value="SMC"/>
+ *     <enumeration value="PMP"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedCommonConductingEquipmentEnum") +@XmlEnum +public enum TPredefinedCommonConductingEquipmentEnum { + + CBR, + DIS, + VTR, + CTR, + GEN, + CAP, + REA, + CON, + MOT, + EFN, + PSH, + BAT, + BSH, + CAB, + GIL, + LIN, + RES, + RRC, + SAR, + TCF, + TCR, + IFL, + FAN, + SCR, + SMC, + PMP; + + public String value() { + return name(); + } + + public static TPredefinedCommonConductingEquipmentEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedFCEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedFCEnum.java new file mode 100644 index 0000000..261dae9 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedFCEnum.java @@ -0,0 +1,67 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedFCEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedFCEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="ST"/>
+ *     <enumeration value="MX"/>
+ *     <enumeration value="CO"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="SG"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SV"/>
+ *     <enumeration value="CF"/>
+ *     <enumeration value="DC"/>
+ *     <enumeration value="EX"/>
+ *     <enumeration value="SR"/>
+ *     <enumeration value="BL"/>
+ *     <enumeration value="OR"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedFCEnum") +@XmlEnum +public enum TPredefinedFCEnum { + + ST, + MX, + CO, + SP, + SG, + SE, + SV, + CF, + DC, + EX, + SR, + BL, + OR; + + public String value() { + return name(); + } + + public static TPredefinedFCEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedGeneralEquipmentEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedGeneralEquipmentEnum.java new file mode 100644 index 0000000..f3c400a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedGeneralEquipmentEnum.java @@ -0,0 +1,57 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedGeneralEquipmentEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedGeneralEquipmentEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="AXN"/>
+ *     <enumeration value="BAT"/>
+ *     <enumeration value="MOT"/>
+ *     <enumeration value="FAN"/>
+ *     <enumeration value="FIL"/>
+ *     <enumeration value="PMP"/>
+ *     <enumeration value="TNK"/>
+ *     <enumeration value="VLV"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedGeneralEquipmentEnum") +@XmlEnum +public enum TPredefinedGeneralEquipmentEnum { + + AXN, + BAT, + MOT, + FAN, + FIL, + PMP, + TNK, + VLV; + + public String value() { + return name(); + } + + public static TPredefinedGeneralEquipmentEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPTypeEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPTypeEnum.java new file mode 100644 index 0000000..5f7cea1 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPTypeEnum.java @@ -0,0 +1,137 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedPTypeEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedPTypeEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="IP"/>
+ *     <enumeration value="IP-SUBNET"/>
+ *     <enumeration value="IP-GATEWAY"/>
+ *     <enumeration value="OSI-NSAP"/>
+ *     <enumeration value="OSI-TSEL"/>
+ *     <enumeration value="OSI-SSEL"/>
+ *     <enumeration value="OSI-PSEL"/>
+ *     <enumeration value="OSI-AP-Title"/>
+ *     <enumeration value="OSI-AP-Invoke"/>
+ *     <enumeration value="OSI-AE-Qualifier"/>
+ *     <enumeration value="OSI-AE-Invoke"/>
+ *     <enumeration value="MAC-Address"/>
+ *     <enumeration value="APPID"/>
+ *     <enumeration value="VLAN-PRIORITY"/>
+ *     <enumeration value="VLAN-ID"/>
+ *     <enumeration value="SNTP-Port"/>
+ *     <enumeration value="MMS-Port"/>
+ *     <enumeration value="DNSName"/>
+ *     <enumeration value="IPv6FlowLabel"/>
+ *     <enumeration value="IPv6ClassOfTraffic"/>
+ *     <enumeration value="C37-118-IP-Port"/>
+ *     <enumeration value="IP-UDP-PORT"/>
+ *     <enumeration value="IP-TCP-PORT"/>
+ *     <enumeration value="IPv6"/>
+ *     <enumeration value="IPv6-SUBNET"/>
+ *     <enumeration value="IPv6-GATEWAY"/>
+ *     <enumeration value="IPv6-IGMPv3Src"/>
+ *     <enumeration value="IP-IGMPv3Src"/>
+ *     <enumeration value="IP-ClassOfTraffic"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedPTypeEnum") +@XmlEnum +public enum TPredefinedPTypeEnum { + + IP("IP"), + @XmlEnumValue("IP-SUBNET") + IP_SUBNET("IP-SUBNET"), + @XmlEnumValue("IP-GATEWAY") + IP_GATEWAY("IP-GATEWAY"), + @XmlEnumValue("OSI-NSAP") + OSI_NSAP("OSI-NSAP"), + @XmlEnumValue("OSI-TSEL") + OSI_TSEL("OSI-TSEL"), + @XmlEnumValue("OSI-SSEL") + OSI_SSEL("OSI-SSEL"), + @XmlEnumValue("OSI-PSEL") + OSI_PSEL("OSI-PSEL"), + @XmlEnumValue("OSI-AP-Title") + OSI_AP_TITLE("OSI-AP-Title"), + @XmlEnumValue("OSI-AP-Invoke") + OSI_AP_INVOKE("OSI-AP-Invoke"), + @XmlEnumValue("OSI-AE-Qualifier") + OSI_AE_QUALIFIER("OSI-AE-Qualifier"), + @XmlEnumValue("OSI-AE-Invoke") + OSI_AE_INVOKE("OSI-AE-Invoke"), + @XmlEnumValue("MAC-Address") + MAC_ADDRESS("MAC-Address"), + APPID("APPID"), + @XmlEnumValue("VLAN-PRIORITY") + VLAN_PRIORITY("VLAN-PRIORITY"), + @XmlEnumValue("VLAN-ID") + VLAN_ID("VLAN-ID"), + @XmlEnumValue("SNTP-Port") + SNTP_PORT("SNTP-Port"), + @XmlEnumValue("MMS-Port") + MMS_PORT("MMS-Port"), + @XmlEnumValue("DNSName") + DNS_NAME("DNSName"), + @XmlEnumValue("IPv6FlowLabel") + I_PV_6_FLOW_LABEL("IPv6FlowLabel"), + @XmlEnumValue("IPv6ClassOfTraffic") + I_PV_6_CLASS_OF_TRAFFIC("IPv6ClassOfTraffic"), + @XmlEnumValue("C37-118-IP-Port") + C_37_118_IP_PORT("C37-118-IP-Port"), + @XmlEnumValue("IP-UDP-PORT") + IP_UDP_PORT("IP-UDP-PORT"), + @XmlEnumValue("IP-TCP-PORT") + IP_TCP_PORT("IP-TCP-PORT"), + @XmlEnumValue("IPv6") + I_PV_6("IPv6"), + @XmlEnumValue("IPv6-SUBNET") + I_PV_6_SUBNET("IPv6-SUBNET"), + @XmlEnumValue("IPv6-GATEWAY") + I_PV_6_GATEWAY("IPv6-GATEWAY"), + @XmlEnumValue("IPv6-IGMPv3Src") + I_PV_6_IGM_PV_3_SRC("IPv6-IGMPv3Src"), + @XmlEnumValue("IP-IGMPv3Src") + IP_IGM_PV_3_SRC("IP-IGMPv3Src"), + @XmlEnumValue("IP-ClassOfTraffic") + IP_CLASS_OF_TRAFFIC("IP-ClassOfTraffic"); + private final String value; + + TPredefinedPTypeEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TPredefinedPTypeEnum fromValue(String v) { + for (TPredefinedPTypeEnum c: TPredefinedPTypeEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPTypePhysConnEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPTypePhysConnEnum.java new file mode 100644 index 0000000..b01bb86 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPTypePhysConnEnum.java @@ -0,0 +1,64 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedPTypePhysConnEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedPTypePhysConnEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="Type"/>
+ *     <enumeration value="Plug"/>
+ *     <enumeration value="Cable"/>
+ *     <enumeration value="Port"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedPTypePhysConnEnum") +@XmlEnum +public enum TPredefinedPTypePhysConnEnum { + + @XmlEnumValue("Type") + TYPE("Type"), + @XmlEnumValue("Plug") + PLUG("Plug"), + @XmlEnumValue("Cable") + CABLE("Cable"), + @XmlEnumValue("Port") + PORT("Port"); + private final String value; + + TPredefinedPTypePhysConnEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TPredefinedPTypePhysConnEnum fromValue(String v) { + for (TPredefinedPTypePhysConnEnum c: TPredefinedPTypePhysConnEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPhysConnTypeEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPhysConnTypeEnum.java new file mode 100644 index 0000000..c23793a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedPhysConnTypeEnum.java @@ -0,0 +1,58 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedPhysConnTypeEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedPhysConnTypeEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *     <enumeration value="Connection"/>
+ *     <enumeration value="RedConn"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedPhysConnTypeEnum") +@XmlEnum +public enum TPredefinedPhysConnTypeEnum { + + @XmlEnumValue("Connection") + CONNECTION("Connection"), + @XmlEnumValue("RedConn") + RED_CONN("RedConn"); + private final String value; + + TPredefinedPhysConnTypeEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TPredefinedPhysConnTypeEnum fromValue(String v) { + for (TPredefinedPhysConnTypeEnum c: TPredefinedPhysConnTypeEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedSCLFileType.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedSCLFileType.java new file mode 100644 index 0000000..aa95d61 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedSCLFileType.java @@ -0,0 +1,53 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedSCLFileType的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedSCLFileType">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="ICD"/>
+ *     <enumeration value="IID"/>
+ *     <enumeration value="CID"/>
+ *     <enumeration value="SSD"/>
+ *     <enumeration value="SCD"/>
+ *     <enumeration value="SED"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedSCLFileType") +@XmlEnum +public enum TPredefinedSCLFileType { + + ICD, + IID, + CID, + SSD, + SCD, + SED; + + public String value() { + return name(); + } + + public static TPredefinedSCLFileType fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedTypeOfSecurityEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedTypeOfSecurityEnum.java new file mode 100644 index 0000000..82716fd --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPredefinedTypeOfSecurityEnum.java @@ -0,0 +1,61 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tPredefinedTypeOfSecurityEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tPredefinedTypeOfSecurityEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *     <enumeration value="None"/>
+ *     <enumeration value="Signature"/>
+ *     <enumeration value="SignatureAndEncryption"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tPredefinedTypeOfSecurityEnum") +@XmlEnum +public enum TPredefinedTypeOfSecurityEnum { + + @XmlEnumValue("None") + NONE("None"), + @XmlEnumValue("Signature") + SIGNATURE("Signature"), + @XmlEnumValue("SignatureAndEncryption") + SIGNATURE_AND_ENCRYPTION("SignatureAndEncryption"); + private final String value; + + TPredefinedTypeOfSecurityEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TPredefinedTypeOfSecurityEnum fromValue(String v) { + for (TPredefinedTypeOfSecurityEnum c: TPredefinedTypeOfSecurityEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPrivate.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPrivate.java new file mode 100644 index 0000000..fe5fbf6 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TPrivate.java @@ -0,0 +1,106 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tPrivate complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tPrivate">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAnyContentFromOtherNamespace">
+ *       <attribute name="type" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <minLength value="1"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="source" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tPrivate") +public class TPrivate + extends TAnyContentFromOtherNamespace +{ + + @XmlAttribute(name = "type", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String type; + @XmlAttribute(name = "source") + @XmlSchemaType(name = "anyURI") + protected String source; + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * 获取source属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSource() { + return source; + } + + /** + * 设置source属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSource(String value) { + this.source = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProcess.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProcess.java new file mode 100644 index 0000000..01747e0 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProcess.java @@ -0,0 +1,209 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tProcess complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tProcess">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipmentContainer">
+ *       <sequence>
+ *         <element name="ConductingEquipment" type="{http://www.iec.ch/61850/2003/SCL}tConductingEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Substation" type="{http://www.iec.ch/61850/2003/SCL}tSubstation" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Line" type="{http://www.iec.ch/61850/2003/SCL}tLine" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="Process" type="{http://www.iec.ch/61850/2003/SCL}tProcess" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" type="{http://www.iec.ch/61850/2003/SCL}tProcessType" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tProcess", propOrder = { + "conductingEquipment", + "substation", + "line", + "process" +}) +public class TProcess + extends TGeneralEquipmentContainer +{ + + @XmlElement(name = "ConductingEquipment") + protected List conductingEquipment; + @XmlElement(name = "Substation") + protected List substation; + @XmlElement(name = "Line") + protected List line; + @XmlElement(name = "Process") + protected List process; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String type; + + /** + * Gets the value of the conductingEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the conductingEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConductingEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConductingEquipment } + * + * + */ + public List getConductingEquipment() { + if (conductingEquipment == null) { + conductingEquipment = new ArrayList(); + } + return this.conductingEquipment; + } + + /** + * Gets the value of the substation property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the substation property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubstation().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubstation } + * + * + */ + public List getSubstation() { + if (substation == null) { + substation = new ArrayList(); + } + return this.substation; + } + + /** + * Gets the value of the line property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the line property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLine().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLine } + * + * + */ + public List getLine() { + if (line == null) { + line = new ArrayList(); + } + return this.line; + } + + /** + * Gets the value of the process property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the process property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getProcess().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TProcess } + * + * + */ + public List getProcess() { + if (process == null) { + process = new ArrayList(); + } + return this.process; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProtNs.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProtNs.java new file mode 100644 index 0000000..1c7947d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProtNs.java @@ -0,0 +1,108 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tProtNs complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tProtNs">
+ *   <simpleContent>
+ *     <extension base="<http://www.iec.ch/61850/2003/SCL>tNamespaceName">
+ *       <attribute name="type" default="8-MMS">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <minLength value="1"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tProtNs", propOrder = { + "value" +}) +public class TProtNs { + + @XmlValue + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String value; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String type; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + if (type == null) { + return "8-MMS"; + } else { + return type; + } + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProtocol.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProtocol.java new file mode 100644 index 0000000..5474b9a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TProtocol.java @@ -0,0 +1,91 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tProtocol complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tProtocol">
+ *   <simpleContent>
+ *     <extension base="<http://www.w3.org/2001/XMLSchema>normalizedString">
+ *       <attribute name="mustUnderstand" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" fixed="true" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tProtocol", propOrder = { + "value" +}) +public class TProtocol { + + @XmlValue + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String value; + @XmlAttribute(name = "mustUnderstand", required = true) + protected boolean mustUnderstand; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取mustUnderstand属性的值。 + * + */ + public boolean isMustUnderstand() { + return mustUnderstand; + } + + /** + * 设置mustUnderstand属性的值。 + * + */ + public void setMustUnderstand(boolean value) { + this.mustUnderstand = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRedProt.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRedProt.java new file mode 100644 index 0000000..50d6a82 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRedProt.java @@ -0,0 +1,131 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tRedProt complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tRedProt">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="hsr" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="prp" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="rstp" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tRedProt") +public class TRedProt { + + @XmlAttribute(name = "hsr") + protected Boolean hsr; + @XmlAttribute(name = "prp") + protected Boolean prp; + @XmlAttribute(name = "rstp") + protected Boolean rstp; + + /** + * 获取hsr属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isHsr() { + if (hsr == null) { + return false; + } else { + return hsr; + } + } + + /** + * 设置hsr属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setHsr(Boolean value) { + this.hsr = value; + } + + /** + * 获取prp属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isPrp() { + if (prp == null) { + return false; + } else { + return prp; + } + } + + /** + * 设置prp属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setPrp(Boolean value) { + this.prp = value; + } + + /** + * 获取rstp属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isRstp() { + if (rstp == null) { + return false; + } else { + return rstp; + } + } + + /** + * 设置rstp属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRstp(Boolean value) { + this.rstp = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRedProtEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRedProtEnum.java new file mode 100644 index 0000000..77ca316 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRedProtEnum.java @@ -0,0 +1,64 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tRedProtEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tRedProtEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="none"/>
+ *     <enumeration value="hsr"/>
+ *     <enumeration value="prp"/>
+ *     <enumeration value="rstp"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tRedProtEnum") +@XmlEnum +public enum TRedProtEnum { + + @XmlEnumValue("none") + NONE("none"), + @XmlEnumValue("hsr") + HSR("hsr"), + @XmlEnumValue("prp") + PRP("prp"), + @XmlEnumValue("rstp") + RSTP("rstp"); + private final String value; + + TRedProtEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TRedProtEnum fromValue(String v) { + for (TRedProtEnum c: TRedProtEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TReportControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TReportControl.java new file mode 100644 index 0000000..01649cc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TReportControl.java @@ -0,0 +1,519 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tReportControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tReportControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControlWithTriggerOpt">
+ *       <sequence>
+ *         <element name="OptFields">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agOptFields"/>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="RptEnabled" type="{http://www.iec.ch/61850/2003/SCL}tRptEnabled" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="rptID" type="{http://www.iec.ch/61850/2003/SCL}tMessageID" />
+ *       <attribute name="confRev" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="buffered" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="bufTime" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" default="0" />
+ *       <attribute name="indexed" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tReportControl", propOrder = { + "optFields", + "rptEnabled" +}) +public class TReportControl + extends TControlWithTriggerOpt +{ + + @XmlElement(name = "OptFields", required = true) + protected TReportControl.OptFields optFields; + @XmlElement(name = "RptEnabled") + protected TRptEnabled rptEnabled; + @XmlAttribute(name = "rptID") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String rptID; + @XmlAttribute(name = "confRev", required = true) + @XmlSchemaType(name = "unsignedInt") + protected long confRev; + @XmlAttribute(name = "buffered") + protected Boolean buffered; + @XmlAttribute(name = "bufTime") + @XmlSchemaType(name = "unsignedInt") + protected Long bufTime; + @XmlAttribute(name = "indexed") + protected Boolean indexed; + + /** + * 获取optFields属性的值。 + * + * @return + * possible object is + * {@link TReportControl.OptFields } + * + */ + public TReportControl.OptFields getOptFields() { + return optFields; + } + + /** + * 设置optFields属性的值。 + * + * @param value + * allowed object is + * {@link TReportControl.OptFields } + * + */ + public void setOptFields(TReportControl.OptFields value) { + this.optFields = value; + } + + /** + * 获取rptEnabled属性的值。 + * + * @return + * possible object is + * {@link TRptEnabled } + * + */ + public TRptEnabled getRptEnabled() { + return rptEnabled; + } + + /** + * 设置rptEnabled属性的值。 + * + * @param value + * allowed object is + * {@link TRptEnabled } + * + */ + public void setRptEnabled(TRptEnabled value) { + this.rptEnabled = value; + } + + /** + * 获取rptID属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getRptID() { + return rptID; + } + + /** + * 设置rptID属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRptID(String value) { + this.rptID = value; + } + + /** + * 获取confRev属性的值。 + * + */ + public long getConfRev() { + return confRev; + } + + /** + * 设置confRev属性的值。 + * + */ + public void setConfRev(long value) { + this.confRev = value; + } + + /** + * 获取buffered属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isBuffered() { + if (buffered == null) { + return false; + } else { + return buffered; + } + } + + /** + * 设置buffered属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setBuffered(Boolean value) { + this.buffered = value; + } + + /** + * 获取bufTime属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public long getBufTime() { + if (bufTime == null) { + return 0L; + } else { + return bufTime; + } + } + + /** + * 设置bufTime属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setBufTime(Long value) { + this.bufTime = value; + } + + /** + * 获取indexed属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isIndexed() { + if (indexed == null) { + return true; + } else { + return indexed; + } + } + + /** + * 设置indexed属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setIndexed(Boolean value) { + this.indexed = value; + } + + + /** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agOptFields"/>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class OptFields { + + @XmlAttribute(name = "seqNum") + protected Boolean seqNum; + @XmlAttribute(name = "timeStamp") + protected Boolean timeStamp; + @XmlAttribute(name = "dataSet") + protected Boolean dataSet; + @XmlAttribute(name = "reasonCode") + protected Boolean reasonCode; + @XmlAttribute(name = "dataRef") + protected Boolean dataRef; + @XmlAttribute(name = "entryID") + protected Boolean entryID; + @XmlAttribute(name = "configRef") + protected Boolean configRef; + @XmlAttribute(name = "bufOvfl") + protected Boolean bufOvfl; + + /** + * 获取seqNum属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSeqNum() { + if (seqNum == null) { + return false; + } else { + return seqNum; + } + } + + /** + * 设置seqNum属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSeqNum(Boolean value) { + this.seqNum = value; + } + + /** + * 获取timeStamp属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isTimeStamp() { + if (timeStamp == null) { + return false; + } else { + return timeStamp; + } + } + + /** + * 设置timeStamp属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setTimeStamp(Boolean value) { + this.timeStamp = value; + } + + /** + * 获取dataSet属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDataSet() { + if (dataSet == null) { + return false; + } else { + return dataSet; + } + } + + /** + * 设置dataSet属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDataSet(Boolean value) { + this.dataSet = value; + } + + /** + * 获取reasonCode属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isReasonCode() { + if (reasonCode == null) { + return false; + } else { + return reasonCode; + } + } + + /** + * 设置reasonCode属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setReasonCode(Boolean value) { + this.reasonCode = value; + } + + /** + * 获取dataRef属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDataRef() { + if (dataRef == null) { + return false; + } else { + return dataRef; + } + } + + /** + * 设置dataRef属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDataRef(Boolean value) { + this.dataRef = value; + } + + /** + * 获取entryID属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isEntryID() { + if (entryID == null) { + return false; + } else { + return entryID; + } + } + + /** + * 设置entryID属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setEntryID(Boolean value) { + this.entryID = value; + } + + /** + * 获取configRef属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isConfigRef() { + if (configRef == null) { + return false; + } else { + return configRef; + } + } + + /** + * 设置configRef属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setConfigRef(Boolean value) { + this.configRef = value; + } + + /** + * 获取bufOvfl属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isBufOvfl() { + if (bufOvfl == null) { + return true; + } else { + return bufOvfl; + } + } + + /** + * 设置bufOvfl属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setBufOvfl(Boolean value) { + this.bufOvfl = value; + } + + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TReportSettings.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TReportSettings.java new file mode 100644 index 0000000..b3f1a73 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TReportSettings.java @@ -0,0 +1,257 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tReportSettings complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tReportSettings">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceSettings">
+ *       <attribute name="rptID" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="optFields" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="bufTime" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="trgOps" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="intgPd" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="resvTms" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="owner" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tReportSettings") +public class TReportSettings + extends TServiceSettings +{ + + @XmlAttribute(name = "rptID") + protected TServiceSettingsEnum rptID; + @XmlAttribute(name = "optFields") + protected TServiceSettingsEnum optFields; + @XmlAttribute(name = "bufTime") + protected TServiceSettingsEnum bufTime; + @XmlAttribute(name = "trgOps") + protected TServiceSettingsEnum trgOps; + @XmlAttribute(name = "intgPd") + protected TServiceSettingsEnum intgPd; + @XmlAttribute(name = "resvTms") + protected Boolean resvTms; + @XmlAttribute(name = "owner") + protected Boolean owner; + + /** + * 获取rptID属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getRptID() { + if (rptID == null) { + return TServiceSettingsEnum.FIX; + } else { + return rptID; + } + } + + /** + * 设置rptID属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setRptID(TServiceSettingsEnum value) { + this.rptID = value; + } + + /** + * 获取optFields属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getOptFields() { + if (optFields == null) { + return TServiceSettingsEnum.FIX; + } else { + return optFields; + } + } + + /** + * 设置optFields属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setOptFields(TServiceSettingsEnum value) { + this.optFields = value; + } + + /** + * 获取bufTime属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getBufTime() { + if (bufTime == null) { + return TServiceSettingsEnum.FIX; + } else { + return bufTime; + } + } + + /** + * 设置bufTime属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setBufTime(TServiceSettingsEnum value) { + this.bufTime = value; + } + + /** + * 获取trgOps属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getTrgOps() { + if (trgOps == null) { + return TServiceSettingsEnum.FIX; + } else { + return trgOps; + } + } + + /** + * 设置trgOps属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setTrgOps(TServiceSettingsEnum value) { + this.trgOps = value; + } + + /** + * 获取intgPd属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getIntgPd() { + if (intgPd == null) { + return TServiceSettingsEnum.FIX; + } else { + return intgPd; + } + } + + /** + * 设置intgPd属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setIntgPd(TServiceSettingsEnum value) { + this.intgPd = value; + } + + /** + * 获取resvTms属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isResvTms() { + if (resvTms == null) { + return false; + } else { + return resvTms; + } + } + + /** + * 设置resvTms属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setResvTms(Boolean value) { + this.resvTms = value; + } + + /** + * 获取owner属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isOwner() { + if (owner == null) { + return false; + } else { + return owner; + } + } + + /** + * 设置owner属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setOwner(Boolean value) { + this.owner = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRightEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRightEnum.java new file mode 100644 index 0000000..6bd376a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRightEnum.java @@ -0,0 +1,61 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tRightEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tRightEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *     <enumeration value="full"/>
+ *     <enumeration value="fix"/>
+ *     <enumeration value="dataflow"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tRightEnum") +@XmlEnum +public enum TRightEnum { + + @XmlEnumValue("full") + FULL("full"), + @XmlEnumValue("fix") + FIX("fix"), + @XmlEnumValue("dataflow") + DATAFLOW("dataflow"); + private final String value; + + TRightEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TRightEnum fromValue(String v) { + for (TRightEnum c: TRightEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRptEnabled.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRptEnabled.java new file mode 100644 index 0000000..e491041 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TRptEnabled.java @@ -0,0 +1,117 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tRptEnabled complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tRptEnabled">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="ClientLN" type="{http://www.iec.ch/61850/2003/SCL}tClientLN" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="max" default="1">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *             <minExclusive value="0"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tRptEnabled", propOrder = { + "clientLN" +}) +public class TRptEnabled + extends TUnNaming +{ + + @XmlElement(name = "ClientLN") + protected List clientLN; + @XmlAttribute(name = "max") + protected Long max; + + /** + * Gets the value of the clientLN property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the clientLN property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getClientLN().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TClientLN } + * + * + */ + public List getClientLN() { + if (clientLN == null) { + clientLN = new ArrayList(); + } + return this.clientLN; + } + + /** + * 获取max属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public long getMax() { + if (max == null) { + return 1L; + } else { + return max; + } + } + + /** + * 设置max属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMax(Long value) { + this.max = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSCSM.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSCSM.java new file mode 100644 index 0000000..4505f7d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSCSM.java @@ -0,0 +1,133 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSCSM complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSCSM">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+ *       <attribute name="iec61850_8_1" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="iec61850_8_2" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="serverAssociationInitiation" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSCSM") +public class TSCSM + extends TServiceYesNo +{ + + @XmlAttribute(name = "iec61850_8_1") + protected Boolean iec6185081; + @XmlAttribute(name = "iec61850_8_2") + protected Boolean iec6185082; + @XmlAttribute(name = "serverAssociationInitiation") + protected Boolean serverAssociationInitiation; + + /** + * 获取iec6185081属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isIec6185081() { + if (iec6185081 == null) { + return true; + } else { + return iec6185081; + } + } + + /** + * 设置iec6185081属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setIec6185081(Boolean value) { + this.iec6185081 = value; + } + + /** + * 获取iec6185082属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isIec6185082() { + if (iec6185082 == null) { + return false; + } else { + return iec6185082; + } + } + + /** + * 设置iec6185082属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setIec6185082(Boolean value) { + this.iec6185082 = value; + } + + /** + * 获取serverAssociationInitiation属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isServerAssociationInitiation() { + if (serverAssociationInitiation == null) { + return false; + } else { + return serverAssociationInitiation; + } + } + + /** + * 设置serverAssociationInitiation属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setServerAssociationInitiation(Boolean value) { + this.serverAssociationInitiation = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSDI.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSDI.java new file mode 100644 index 0000000..fc9db28 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSDI.java @@ -0,0 +1,208 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElements; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tSDI complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSDI">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <choice maxOccurs="unbounded" minOccurs="0">
+ *           <element name="SDI" type="{http://www.iec.ch/61850/2003/SCL}tSDI"/>
+ *           <element name="DAI" type="{http://www.iec.ch/61850/2003/SCL}tDAI"/>
+ *         </choice>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAttributeNameEnum" />
+ *       <attribute name="ix" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="sAddr">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *             <maxLength value="255"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSDI", propOrder = { + "sdiOrDAI", + "labels" +}) +public class TSDI + extends TUnNaming +{ + + @XmlElements({ + @XmlElement(name = "SDI", type = TSDI.class), + @XmlElement(name = "DAI", type = TDAI.class) + }) + protected List sdiOrDAI; + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + protected String name; + @XmlAttribute(name = "ix") + @XmlSchemaType(name = "unsignedInt") + protected Long ix; + @XmlAttribute(name = "sAddr") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String sAddr; + + /** + * Gets the value of the sdiOrDAI property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the sdiOrDAI property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSDIOrDAI().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSDI } + * {@link TDAI } + * + * + */ + public List getSDIOrDAI() { + if (sdiOrDAI == null) { + sdiOrDAI = new ArrayList(); + } + return this.sdiOrDAI; + } + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取ix属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getIx() { + return ix; + } + + /** + * 设置ix属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setIx(Long value) { + this.ix = value; + } + + /** + * 获取sAddr属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSAddr() { + return sAddr; + } + + /** + * 设置sAddr属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSAddr(String value) { + this.sAddr = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSDO.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSDO.java new file mode 100644 index 0000000..070f0f3 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSDO.java @@ -0,0 +1,163 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tSDO complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSDO">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Labels" type="{http://www.iec.ch/61850/2003/SCL}tLabels" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="name" use="required" type="{http://www.iec.ch/61850/2003/SCL}tSubDataName" />
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="count" type="{http://www.iec.ch/61850/2003/SCL}tSDOCount" default="0" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSDO", propOrder = { + "labels" +}) +public class TSDO + extends TUnNaming +{ + + @XmlElement(name = "Labels") + protected TLabels labels; + @XmlAttribute(name = "name", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String name; + @XmlAttribute(name = "type", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String type; + @XmlAttribute(name = "count") + protected String count; + + /** + * 获取labels属性的值。 + * + * @return + * possible object is + * {@link TLabels } + * + */ + public TLabels getLabels() { + return labels; + } + + /** + * 设置labels属性的值。 + * + * @param value + * allowed object is + * {@link TLabels } + * + */ + public void setLabels(TLabels value) { + this.labels = value; + } + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * 获取count属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getCount() { + if (count == null) { + return "0"; + } else { + return count; + } + } + + /** + * 设置count属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCount(String value) { + this.count = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMV.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMV.java new file mode 100644 index 0000000..558b053 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMV.java @@ -0,0 +1,40 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSMV complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSMV">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControlBlock">
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSMV") +public class TSMV + extends TControlBlock +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVDeliveryEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVDeliveryEnum.java new file mode 100644 index 0000000..e55b2c8 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVDeliveryEnum.java @@ -0,0 +1,61 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSMVDeliveryEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tSMVDeliveryEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="unicast"/>
+ *     <enumeration value="multicast"/>
+ *     <enumeration value="both"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tSMVDeliveryEnum") +@XmlEnum +public enum TSMVDeliveryEnum { + + @XmlEnumValue("unicast") + UNICAST("unicast"), + @XmlEnumValue("multicast") + MULTICAST("multicast"), + @XmlEnumValue("both") + BOTH("both"); + private final String value; + + TSMVDeliveryEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TSMVDeliveryEnum fromValue(String v) { + for (TSMVDeliveryEnum c: TSMVDeliveryEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVSettings.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVSettings.java new file mode 100644 index 0000000..84b555f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVSettings.java @@ -0,0 +1,386 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementRef; +import javax.xml.bind.annotation.XmlElementRefs; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSMVSettings complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSMVSettings">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceSettings">
+ *       <sequence>
+ *         <choice maxOccurs="unbounded">
+ *           <element name="SmpRate">
+ *             <simpleType>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *                 <minExclusive value="0"/>
+ *               </restriction>
+ *             </simpleType>
+ *           </element>
+ *           <element name="SamplesPerSec">
+ *             <simpleType>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *                 <minExclusive value="0"/>
+ *               </restriction>
+ *             </simpleType>
+ *           </element>
+ *           <element name="SecPerSamples">
+ *             <simpleType>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *                 <minExclusive value="0"/>
+ *               </restriction>
+ *             </simpleType>
+ *           </element>
+ *         </choice>
+ *         <element name="McSecurity" type="{http://www.iec.ch/61850/2003/SCL}tMcSecurity" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="svID" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="optFields" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="smpRate" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *       <attribute name="samplesPerSec" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="pdcTimeStamp" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="synchSrcId" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="nofASDU" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsNoDynEnum" default="Fix" />
+ *       <attribute name="kdaParticipant" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSMVSettings", propOrder = { + "smpRateOrSamplesPerSecOrSecPerSamples", + "mcSecurity" +}) +public class TSMVSettings + extends TServiceSettings +{ + + @XmlElementRefs({ + @XmlElementRef(name = "SmpRate", namespace = "http://www.iec.ch/61850/2003/SCL", type = JAXBElement.class, required = false), + @XmlElementRef(name = "SamplesPerSec", namespace = "http://www.iec.ch/61850/2003/SCL", type = JAXBElement.class, required = false), + @XmlElementRef(name = "SecPerSamples", namespace = "http://www.iec.ch/61850/2003/SCL", type = JAXBElement.class, required = false) + }) + protected List> smpRateOrSamplesPerSecOrSecPerSamples; + @XmlElement(name = "McSecurity") + protected TMcSecurity mcSecurity; + @XmlAttribute(name = "svID") + protected TServiceSettingsEnum svID; + @XmlAttribute(name = "optFields") + protected TServiceSettingsEnum optFields; + @XmlAttribute(name = "smpRate") + protected TServiceSettingsEnum smpRate; + @XmlAttribute(name = "samplesPerSec") + protected Boolean samplesPerSec; + @XmlAttribute(name = "pdcTimeStamp") + protected Boolean pdcTimeStamp; + @XmlAttribute(name = "synchSrcId") + protected Boolean synchSrcId; + @XmlAttribute(name = "nofASDU") + protected TServiceSettingsNoDynEnum nofASDU; + @XmlAttribute(name = "kdaParticipant") + protected Boolean kdaParticipant; + + /** + * Gets the value of the smpRateOrSamplesPerSecOrSecPerSamples property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the smpRateOrSamplesPerSecOrSecPerSamples property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSmpRateOrSamplesPerSecOrSecPerSamples().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link JAXBElement }{@code <}{@link Long }{@code >} + * {@link JAXBElement }{@code <}{@link Long }{@code >} + * {@link JAXBElement }{@code <}{@link Long }{@code >} + * + * + */ + public List> getSmpRateOrSamplesPerSecOrSecPerSamples() { + if (smpRateOrSamplesPerSecOrSecPerSamples == null) { + smpRateOrSamplesPerSecOrSecPerSamples = new ArrayList>(); + } + return this.smpRateOrSamplesPerSecOrSecPerSamples; + } + + /** + * 获取mcSecurity属性的值。 + * + * @return + * possible object is + * {@link TMcSecurity } + * + */ + public TMcSecurity getMcSecurity() { + return mcSecurity; + } + + /** + * 设置mcSecurity属性的值。 + * + * @param value + * allowed object is + * {@link TMcSecurity } + * + */ + public void setMcSecurity(TMcSecurity value) { + this.mcSecurity = value; + } + + /** + * 获取svID属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getSvID() { + if (svID == null) { + return TServiceSettingsEnum.FIX; + } else { + return svID; + } + } + + /** + * 设置svID属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setSvID(TServiceSettingsEnum value) { + this.svID = value; + } + + /** + * 获取optFields属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getOptFields() { + if (optFields == null) { + return TServiceSettingsEnum.FIX; + } else { + return optFields; + } + } + + /** + * 设置optFields属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setOptFields(TServiceSettingsEnum value) { + this.optFields = value; + } + + /** + * 获取smpRate属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getSmpRate() { + if (smpRate == null) { + return TServiceSettingsEnum.FIX; + } else { + return smpRate; + } + } + + /** + * 设置smpRate属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setSmpRate(TServiceSettingsEnum value) { + this.smpRate = value; + } + + /** + * 获取samplesPerSec属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSamplesPerSec() { + if (samplesPerSec == null) { + return false; + } else { + return samplesPerSec; + } + } + + /** + * 设置samplesPerSec属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSamplesPerSec(Boolean value) { + this.samplesPerSec = value; + } + + /** + * 获取pdcTimeStamp属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isPdcTimeStamp() { + if (pdcTimeStamp == null) { + return false; + } else { + return pdcTimeStamp; + } + } + + /** + * 设置pdcTimeStamp属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setPdcTimeStamp(Boolean value) { + this.pdcTimeStamp = value; + } + + /** + * 获取synchSrcId属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSynchSrcId() { + if (synchSrcId == null) { + return false; + } else { + return synchSrcId; + } + } + + /** + * 设置synchSrcId属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSynchSrcId(Boolean value) { + this.synchSrcId = value; + } + + /** + * 获取nofASDU属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsNoDynEnum } + * + */ + public TServiceSettingsNoDynEnum getNofASDU() { + if (nofASDU == null) { + return TServiceSettingsNoDynEnum.FIX; + } else { + return nofASDU; + } + } + + /** + * 设置nofASDU属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsNoDynEnum } + * + */ + public void setNofASDU(TServiceSettingsNoDynEnum value) { + this.nofASDU = value; + } + + /** + * 获取kdaParticipant属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isKdaParticipant() { + if (kdaParticipant == null) { + return false; + } else { + return kdaParticipant; + } + } + + /** + * 设置kdaParticipant属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setKdaParticipant(Boolean value) { + this.kdaParticipant = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVsc.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVsc.java new file mode 100644 index 0000000..02e2791 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSMVsc.java @@ -0,0 +1,164 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSMVsc complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSMVsc">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceWithMax">
+ *       <attribute name="delivery" type="{http://www.iec.ch/61850/2003/SCL}tSMVDeliveryEnum" default="multicast" />
+ *       <attribute name="deliveryConf" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="sv" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="rSV" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSMVsc") +public class TSMVsc + extends TServiceWithMax +{ + + @XmlAttribute(name = "delivery") + protected TSMVDeliveryEnum delivery; + @XmlAttribute(name = "deliveryConf") + protected Boolean deliveryConf; + @XmlAttribute(name = "sv") + protected Boolean sv; + @XmlAttribute(name = "rSV") + protected Boolean rsv; + + /** + * 获取delivery属性的值。 + * + * @return + * possible object is + * {@link TSMVDeliveryEnum } + * + */ + public TSMVDeliveryEnum getDelivery() { + if (delivery == null) { + return TSMVDeliveryEnum.MULTICAST; + } else { + return delivery; + } + } + + /** + * 设置delivery属性的值。 + * + * @param value + * allowed object is + * {@link TSMVDeliveryEnum } + * + */ + public void setDelivery(TSMVDeliveryEnum value) { + this.delivery = value; + } + + /** + * 获取deliveryConf属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDeliveryConf() { + if (deliveryConf == null) { + return false; + } else { + return deliveryConf; + } + } + + /** + * 设置deliveryConf属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDeliveryConf(Boolean value) { + this.deliveryConf = value; + } + + /** + * 获取sv属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSv() { + if (sv == null) { + return true; + } else { + return sv; + } + } + + /** + * 设置sv属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSv(Boolean value) { + this.sv = value; + } + + /** + * 获取rsv属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isRSV() { + if (rsv == null) { + return false; + } else { + return rsv; + } + } + + /** + * 设置rsv属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRSV(Boolean value) { + this.rsv = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSampledValueControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSampledValueControl.java new file mode 100644 index 0000000..0aaf5d5 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSampledValueControl.java @@ -0,0 +1,538 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tSampledValueControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSampledValueControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tControlWithIEDName">
+ *       <sequence>
+ *         <element name="SmvOpts">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agSmvOpts"/>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="Protocol" type="{http://www.iec.ch/61850/2003/SCL}tProtocol" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="smvID" use="required" type="{http://www.iec.ch/61850/2003/SCL}tMessageID" />
+ *       <attribute name="multicast" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="smpRate" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="nofASDU" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="smpMod" type="{http://www.iec.ch/61850/2003/SCL}tSmpMod" default="SmpPerPeriod" />
+ *       <attribute name="securityEnable" type="{http://www.iec.ch/61850/2003/SCL}tPredefinedTypeOfSecurityEnum" default="None" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSampledValueControl", propOrder = { + "smvOpts", + "protocol" +}) +public class TSampledValueControl + extends TControlWithIEDName +{ + + @XmlElement(name = "SmvOpts", required = true) + protected TSampledValueControl.SmvOpts smvOpts; + @XmlElement(name = "Protocol") + protected TProtocol protocol; + @XmlAttribute(name = "smvID", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String smvID; + @XmlAttribute(name = "multicast") + protected Boolean multicast; + @XmlAttribute(name = "smpRate", required = true) + @XmlSchemaType(name = "unsignedInt") + protected long smpRate; + @XmlAttribute(name = "nofASDU", required = true) + @XmlSchemaType(name = "unsignedInt") + protected long nofASDU; + @XmlAttribute(name = "smpMod") + protected TSmpMod smpMod; + @XmlAttribute(name = "securityEnable") + protected TPredefinedTypeOfSecurityEnum securityEnable; + + /** + * 获取smvOpts属性的值。 + * + * @return + * possible object is + * {@link TSampledValueControl.SmvOpts } + * + */ + public TSampledValueControl.SmvOpts getSmvOpts() { + return smvOpts; + } + + /** + * 设置smvOpts属性的值。 + * + * @param value + * allowed object is + * {@link TSampledValueControl.SmvOpts } + * + */ + public void setSmvOpts(TSampledValueControl.SmvOpts value) { + this.smvOpts = value; + } + + /** + * 获取protocol属性的值。 + * + * @return + * possible object is + * {@link TProtocol } + * + */ + public TProtocol getProtocol() { + return protocol; + } + + /** + * 设置protocol属性的值。 + * + * @param value + * allowed object is + * {@link TProtocol } + * + */ + public void setProtocol(TProtocol value) { + this.protocol = value; + } + + /** + * 获取smvID属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSmvID() { + return smvID; + } + + /** + * 设置smvID属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSmvID(String value) { + this.smvID = value; + } + + /** + * 获取multicast属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isMulticast() { + if (multicast == null) { + return true; + } else { + return multicast; + } + } + + /** + * 设置multicast属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setMulticast(Boolean value) { + this.multicast = value; + } + + /** + * 获取smpRate属性的值。 + * + */ + public long getSmpRate() { + return smpRate; + } + + /** + * 设置smpRate属性的值。 + * + */ + public void setSmpRate(long value) { + this.smpRate = value; + } + + /** + * 获取nofASDU属性的值。 + * + */ + public long getNofASDU() { + return nofASDU; + } + + /** + * 设置nofASDU属性的值。 + * + */ + public void setNofASDU(long value) { + this.nofASDU = value; + } + + /** + * 获取smpMod属性的值。 + * + * @return + * possible object is + * {@link TSmpMod } + * + */ + public TSmpMod getSmpMod() { + if (smpMod == null) { + return TSmpMod.SMP_PER_PERIOD; + } else { + return smpMod; + } + } + + /** + * 设置smpMod属性的值。 + * + * @param value + * allowed object is + * {@link TSmpMod } + * + */ + public void setSmpMod(TSmpMod value) { + this.smpMod = value; + } + + /** + * 获取securityEnable属性的值。 + * + * @return + * possible object is + * {@link TPredefinedTypeOfSecurityEnum } + * + */ + public TPredefinedTypeOfSecurityEnum getSecurityEnable() { + if (securityEnable == null) { + return TPredefinedTypeOfSecurityEnum.NONE; + } else { + return securityEnable; + } + } + + /** + * 设置securityEnable属性的值。 + * + * @param value + * allowed object is + * {@link TPredefinedTypeOfSecurityEnum } + * + */ + public void setSecurityEnable(TPredefinedTypeOfSecurityEnum value) { + this.securityEnable = value; + } + + + /** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agSmvOpts"/>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class SmvOpts { + + @XmlAttribute(name = "refreshTime") + protected Boolean refreshTime; + @XmlAttribute(name = "sampleSynchronized") + protected Boolean sampleSynchronized; + @XmlAttribute(name = "sampleRate") + protected Boolean sampleRate; + @XmlAttribute(name = "dataSet") + protected Boolean dataSet; + @XmlAttribute(name = "security") + protected Boolean security; + @XmlAttribute(name = "timestamp") + protected Boolean timestamp; + @XmlAttribute(name = "synchSourceId") + protected Boolean synchSourceId; + @XmlAttribute(name = "sampleMode") + protected Boolean sampleMode; + + /** + * 获取refreshTime属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isRefreshTime() { + if (refreshTime == null) { + return false; + } else { + return refreshTime; + } + } + + /** + * 设置refreshTime属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setRefreshTime(Boolean value) { + this.refreshTime = value; + } + + /** + * 获取sampleSynchronized属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSampleSynchronized() { + if (sampleSynchronized == null) { + return true; + } else { + return sampleSynchronized; + } + } + + /** + * 设置sampleSynchronized属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSampleSynchronized(Boolean value) { + this.sampleSynchronized = value; + } + + /** + * 获取sampleRate属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSampleRate() { + if (sampleRate == null) { + return false; + } else { + return sampleRate; + } + } + + /** + * 设置sampleRate属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSampleRate(Boolean value) { + this.sampleRate = value; + } + + /** + * 获取dataSet属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDataSet() { + if (dataSet == null) { + return false; + } else { + return dataSet; + } + } + + /** + * 设置dataSet属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDataSet(Boolean value) { + this.dataSet = value; + } + + /** + * 获取security属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSecurity() { + if (security == null) { + return false; + } else { + return security; + } + } + + /** + * 设置security属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSecurity(Boolean value) { + this.security = value; + } + + /** + * 获取timestamp属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isTimestamp() { + if (timestamp == null) { + return false; + } else { + return timestamp; + } + } + + /** + * 设置timestamp属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setTimestamp(Boolean value) { + this.timestamp = value; + } + + /** + * 获取synchSourceId属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSynchSourceId() { + if (synchSourceId == null) { + return false; + } else { + return synchSourceId; + } + } + + /** + * 设置synchSourceId属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSynchSourceId(Boolean value) { + this.synchSourceId = value; + } + + /** + * 获取sampleMode属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSampleMode() { + if (sampleMode == null) { + return false; + } else { + return sampleMode; + } + } + + /** + * 设置sampleMode属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSampleMode(Boolean value) { + this.sampleMode = value; + } + + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSclFileUUIDReference.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSclFileUUIDReference.java new file mode 100644 index 0000000..440445e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSclFileUUIDReference.java @@ -0,0 +1,220 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + * Definition of a reference to an SCL file by its UUID and/or File name with an associated version revision, corresponding to the definition of an SCL file header + * + *

tSclFileUUIDReference complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSclFileUUIDReference">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <attribute name="fileUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <attribute name="fileName" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="fileType" use="required" type="{http://www.iec.ch/61850/2003/SCL}tSCLFileType" />
+ *       <attribute name="version" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="revision" use="required" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <attribute name="when" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSclFileUUIDReference") +@XmlSeeAlso({ + TMinRequestedSCDFile.class +}) +public class TSclFileUUIDReference + extends TUnNaming +{ + + @XmlAttribute(name = "fileUuid") + protected String fileUuid; + @XmlAttribute(name = "fileName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String fileName; + @XmlAttribute(name = "fileType", required = true) + protected String fileType; + @XmlAttribute(name = "version", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String version; + @XmlAttribute(name = "revision", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String revision; + @XmlAttribute(name = "when") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String when; + + /** + * 获取fileUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getFileUuid() { + return fileUuid; + } + + /** + * 设置fileUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFileUuid(String value) { + this.fileUuid = value; + } + + /** + * 获取fileName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getFileName() { + return fileName; + } + + /** + * 设置fileName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFileName(String value) { + this.fileName = value; + } + + /** + * 获取fileType属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getFileType() { + return fileType; + } + + /** + * 设置fileType属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFileType(String value) { + this.fileType = value; + } + + /** + * 获取version属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersion() { + return version; + } + + /** + * 设置version属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersion(String value) { + this.version = value; + } + + /** + * 获取revision属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getRevision() { + return revision; + } + + /** + * 设置revision属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRevision(String value) { + this.revision = value; + } + + /** + * 获取when属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getWhen() { + return when; + } + + /** + * 设置when属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setWhen(String value) { + this.when = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSecurity.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSecurity.java new file mode 100644 index 0000000..4a73477 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSecurity.java @@ -0,0 +1,100 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSecurity complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSecurity">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="ACSEAuthentication" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="E2ESecurity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSecurity") +public class TSecurity { + + @XmlAttribute(name = "ACSEAuthentication") + protected Boolean acseAuthentication; + @XmlAttribute(name = "E2ESecurity") + protected Boolean e2ESecurity; + + /** + * 获取acseAuthentication属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isACSEAuthentication() { + if (acseAuthentication == null) { + return false; + } else { + return acseAuthentication; + } + } + + /** + * 设置acseAuthentication属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setACSEAuthentication(Boolean value) { + this.acseAuthentication = value; + } + + /** + * 获取e2ESecurity属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isE2ESecurity() { + if (e2ESecurity == null) { + return false; + } else { + return e2ESecurity; + } + } + + /** + * 设置e2ESecurity属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setE2ESecurity(Boolean value) { + this.e2ESecurity = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServer.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServer.java new file mode 100644 index 0000000..601a180 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServer.java @@ -0,0 +1,357 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServer complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServer">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <sequence>
+ *         <element name="Authentication">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agAuthentication"/>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="LDevice" type="{http://www.iec.ch/61850/2003/SCL}tLDevice" maxOccurs="unbounded"/>
+ *         <element name="Association" type="{http://www.iec.ch/61850/2003/SCL}tAssociation" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="timeout" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" default="30" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServer", propOrder = { + "authentication", + "lDevice", + "association" +}) +public class TServer + extends TUnNaming +{ + + @XmlElement(name = "Authentication", required = true) + protected TServer.Authentication authentication; + @XmlElement(name = "LDevice", required = true) + protected List lDevice; + @XmlElement(name = "Association") + protected List association; + @XmlAttribute(name = "timeout") + @XmlSchemaType(name = "unsignedInt") + protected Long timeout; + + /** + * 获取authentication属性的值。 + * + * @return + * possible object is + * {@link TServer.Authentication } + * + */ + public TServer.Authentication getAuthentication() { + return authentication; + } + + /** + * 设置authentication属性的值。 + * + * @param value + * allowed object is + * {@link TServer.Authentication } + * + */ + public void setAuthentication(TServer.Authentication value) { + this.authentication = value; + } + + /** + * Gets the value of the lDevice property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the lDevice property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getLDevice().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TLDevice } + * + * + */ + public List getLDevice() { + if (lDevice == null) { + lDevice = new ArrayList(); + } + return this.lDevice; + } + + /** + * Gets the value of the association property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the association property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getAssociation().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TAssociation } + * + * + */ + public List getAssociation() { + if (association == null) { + association = new ArrayList(); + } + return this.association; + } + + /** + * 获取timeout属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public long getTimeout() { + if (timeout == null) { + return 30L; + } else { + return timeout; + } + } + + /** + * 设置timeout属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setTimeout(Long value) { + this.timeout = value; + } + + + /** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agAuthentication"/>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class Authentication { + + @XmlAttribute(name = "none") + protected Boolean none; + @XmlAttribute(name = "password") + protected Boolean password; + @XmlAttribute(name = "weak") + protected Boolean weak; + @XmlAttribute(name = "strong") + protected Boolean strong; + @XmlAttribute(name = "certificate") + protected Boolean certificate; + + /** + * 获取none属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isNone() { + if (none == null) { + return true; + } else { + return none; + } + } + + /** + * 设置none属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setNone(Boolean value) { + this.none = value; + } + + /** + * 获取password属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isPassword() { + if (password == null) { + return false; + } else { + return password; + } + } + + /** + * 设置password属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setPassword(Boolean value) { + this.password = value; + } + + /** + * 获取weak属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isWeak() { + if (weak == null) { + return false; + } else { + return weak; + } + } + + /** + * 设置weak属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setWeak(Boolean value) { + this.weak = value; + } + + /** + * 获取strong属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isStrong() { + if (strong == null) { + return false; + } else { + return strong; + } + } + + /** + * 设置strong属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setStrong(Boolean value) { + this.strong = value; + } + + /** + * 获取certificate属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isCertificate() { + if (certificate == null) { + return false; + } else { + return certificate; + } + } + + /** + * 设置certificate属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setCertificate(Boolean value) { + this.certificate = value; + } + + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServerAt.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServerAt.java new file mode 100644 index 0000000..821bda9 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServerAt.java @@ -0,0 +1,98 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tServerAt complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServerAt">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <attribute name="apName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tAccessPointName" />
+ *       <attribute name="apUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServerAt") +public class TServerAt + extends TUnNaming +{ + + @XmlAttribute(name = "apName", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String apName; + @XmlAttribute(name = "apUuid") + protected String apUuid; + + /** + * 获取apName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApName() { + return apName; + } + + /** + * 设置apName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApName(String value) { + this.apName = value; + } + + /** + * 获取apUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getApUuid() { + return apUuid; + } + + /** + * 设置apUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setApUuid(String value) { + this.apUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceConfReportControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceConfReportControl.java new file mode 100644 index 0000000..396fd18 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceConfReportControl.java @@ -0,0 +1,142 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tServiceConfReportControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceConfReportControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceWithMax">
+ *       <attribute name="bufMode" default="both">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *             <enumeration value="unbuffered"/>
+ *             <enumeration value="buffered"/>
+ *             <enumeration value="both"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="bufConf" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="maxBuf" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceConfReportControl") +public class TServiceConfReportControl + extends TServiceWithMax +{ + + @XmlAttribute(name = "bufMode") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String bufMode; + @XmlAttribute(name = "bufConf") + protected Boolean bufConf; + @XmlAttribute(name = "maxBuf") + @XmlSchemaType(name = "unsignedInt") + protected Long maxBuf; + + /** + * 获取bufMode属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getBufMode() { + if (bufMode == null) { + return "both"; + } else { + return bufMode; + } + } + + /** + * 设置bufMode属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setBufMode(String value) { + this.bufMode = value; + } + + /** + * 获取bufConf属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isBufConf() { + if (bufConf == null) { + return false; + } else { + return bufConf; + } + } + + /** + * 设置bufConf属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setBufConf(Boolean value) { + this.bufConf = value; + } + + /** + * 获取maxBuf属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getMaxBuf() { + return maxBuf; + } + + /** + * 设置maxBuf属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMaxBuf(Long value) { + this.maxBuf = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceForConfDataSet.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceForConfDataSet.java new file mode 100644 index 0000000..af6410a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceForConfDataSet.java @@ -0,0 +1,71 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceForConfDataSet complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceForConfDataSet">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceWithMaxAndMaxAttributes">
+ *       <attribute name="modify" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceForConfDataSet") +public class TServiceForConfDataSet + extends TServiceWithMaxAndMaxAttributes +{ + + @XmlAttribute(name = "modify") + protected Boolean modify; + + /** + * 获取modify属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isModify() { + if (modify == null) { + return true; + } else { + return modify; + } + } + + /** + * 设置modify属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setModify(Boolean value) { + this.modify = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettings.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettings.java new file mode 100644 index 0000000..8e23f2c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettings.java @@ -0,0 +1,107 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceSettings complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceSettings">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="cbName" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsNoDynEnum" default="Fix" />
+ *       <attribute name="datSet" type="{http://www.iec.ch/61850/2003/SCL}tServiceSettingsEnum" default="Fix" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceSettings") +@XmlSeeAlso({ + TReportSettings.class, + TLogSettings.class, + TGSESettings.class, + TSMVSettings.class +}) +public abstract class TServiceSettings { + + @XmlAttribute(name = "cbName") + protected TServiceSettingsNoDynEnum cbName; + @XmlAttribute(name = "datSet") + protected TServiceSettingsEnum datSet; + + /** + * 获取cbName属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsNoDynEnum } + * + */ + public TServiceSettingsNoDynEnum getCbName() { + if (cbName == null) { + return TServiceSettingsNoDynEnum.FIX; + } else { + return cbName; + } + } + + /** + * 设置cbName属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsNoDynEnum } + * + */ + public void setCbName(TServiceSettingsNoDynEnum value) { + this.cbName = value; + } + + /** + * 获取datSet属性的值。 + * + * @return + * possible object is + * {@link TServiceSettingsEnum } + * + */ + public TServiceSettingsEnum getDatSet() { + if (datSet == null) { + return TServiceSettingsEnum.FIX; + } else { + return datSet; + } + } + + /** + * 设置datSet属性的值。 + * + * @param value + * allowed object is + * {@link TServiceSettingsEnum } + * + */ + public void setDatSet(TServiceSettingsEnum value) { + this.datSet = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettingsEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettingsEnum.java new file mode 100644 index 0000000..ada9720 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettingsEnum.java @@ -0,0 +1,61 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceSettingsEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tServiceSettingsEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="Dyn"/>
+ *     <enumeration value="Conf"/>
+ *     <enumeration value="Fix"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tServiceSettingsEnum") +@XmlEnum +public enum TServiceSettingsEnum { + + @XmlEnumValue("Dyn") + DYN("Dyn"), + @XmlEnumValue("Conf") + CONF("Conf"), + @XmlEnumValue("Fix") + FIX("Fix"); + private final String value; + + TServiceSettingsEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TServiceSettingsEnum fromValue(String v) { + for (TServiceSettingsEnum c: TServiceSettingsEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettingsNoDynEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettingsNoDynEnum.java new file mode 100644 index 0000000..7e47166 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceSettingsNoDynEnum.java @@ -0,0 +1,58 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceSettingsNoDynEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tServiceSettingsNoDynEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="Conf"/>
+ *     <enumeration value="Fix"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tServiceSettingsNoDynEnum") +@XmlEnum +public enum TServiceSettingsNoDynEnum { + + @XmlEnumValue("Conf") + CONF("Conf"), + @XmlEnumValue("Fix") + FIX("Fix"); + private final String value; + + TServiceSettingsNoDynEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TServiceSettingsNoDynEnum fromValue(String v) { + for (TServiceSettingsNoDynEnum c: TServiceSettingsNoDynEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceType.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceType.java new file mode 100644 index 0000000..0797735 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceType.java @@ -0,0 +1,62 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceType的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tServiceType">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="Poll"/>
+ *     <enumeration value="Report"/>
+ *     <enumeration value="GOOSE"/>
+ *     <enumeration value="SMV"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tServiceType") +@XmlEnum +public enum TServiceType { + + @XmlEnumValue("Poll") + POLL("Poll"), + @XmlEnumValue("Report") + REPORT("Report"), + GOOSE("GOOSE"), + SMV("SMV"); + private final String value; + + TServiceType(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TServiceType fromValue(String v) { + for (TServiceType c: TServiceType.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMax.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMax.java new file mode 100644 index 0000000..68de125 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMax.java @@ -0,0 +1,67 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceWithMax complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceWithMax">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="max" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceWithMax") +@XmlSeeAlso({ + TServiceConfReportControl.class, + TServiceWithMaxAndModify.class, + TServiceWithMaxAndMaxAttributes.class, + TGOOSEcapabilities.class, + TSMVsc.class +}) +public class TServiceWithMax { + + @XmlAttribute(name = "max", required = true) + @XmlSchemaType(name = "unsignedInt") + protected long max; + + /** + * 获取max属性的值。 + * + */ + public long getMax() { + return max; + } + + /** + * 设置max属性的值。 + * + */ + public void setMax(long value) { + this.max = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxAndMaxAttributes.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxAndMaxAttributes.java new file mode 100644 index 0000000..3c67008 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxAndMaxAttributes.java @@ -0,0 +1,77 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceWithMaxAndMaxAttributes complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceWithMaxAndMaxAttributes">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceWithMax">
+ *       <attribute name="maxAttributes">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *             <minExclusive value="0"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceWithMaxAndMaxAttributes") +@XmlSeeAlso({ + TServiceForConfDataSet.class +}) +public class TServiceWithMaxAndMaxAttributes + extends TServiceWithMax +{ + + @XmlAttribute(name = "maxAttributes") + protected Long maxAttributes; + + /** + * 获取maxAttributes属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getMaxAttributes() { + return maxAttributes; + } + + /** + * 设置maxAttributes属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMaxAttributes(Long value) { + this.maxAttributes = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxAndModify.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxAndModify.java new file mode 100644 index 0000000..8cb0931 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxAndModify.java @@ -0,0 +1,71 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceWithMaxAndModify complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceWithMaxAndModify">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceWithMax">
+ *       <attribute name="modify" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceWithMaxAndModify") +public class TServiceWithMaxAndModify + extends TServiceWithMax +{ + + @XmlAttribute(name = "modify") + protected Boolean modify; + + /** + * 获取modify属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isModify() { + if (modify == null) { + return true; + } else { + return modify; + } + } + + /** + * 设置modify属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setModify(Boolean value) { + this.modify = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxNonZero.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxNonZero.java new file mode 100644 index 0000000..1813d66 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithMaxNonZero.java @@ -0,0 +1,63 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceWithMaxNonZero complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceWithMaxNonZero">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="max" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *             <minExclusive value="0"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceWithMaxNonZero") +public class TServiceWithMaxNonZero { + + @XmlAttribute(name = "max", required = true) + protected long max; + + /** + * 获取max属性的值。 + * + */ + public long getMax() { + return max; + } + + /** + * 设置max属性的值。 + * + */ + public void setMax(long value) { + this.max = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithOptionalMax.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithOptionalMax.java new file mode 100644 index 0000000..9658d5f --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceWithOptionalMax.java @@ -0,0 +1,67 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceWithOptionalMax complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceWithOptionalMax">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="max" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceWithOptionalMax") +public class TServiceWithOptionalMax { + + @XmlAttribute(name = "max") + @XmlSchemaType(name = "unsignedInt") + protected Long max; + + /** + * 获取max属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getMax() { + return max; + } + + /** + * 设置max属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setMax(Long value) { + this.max = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceYesNo.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceYesNo.java new file mode 100644 index 0000000..80045e2 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServiceYesNo.java @@ -0,0 +1,46 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tServiceYesNo complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServiceYesNo">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServiceYesNo") +@XmlSeeAlso({ + TFileHandling.class, + TTimeSyncProt.class, + TCommProt.class, + TSCSM.class, + com.njcn.gather.icd.mapping.infrastructure.parser.generated.TSettingGroups.SGEdit.class, + com.njcn.gather.icd.mapping.infrastructure.parser.generated.TSettingGroups.ConfSG.class +}) +public class TServiceYesNo { + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServices.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServices.java new file mode 100644 index 0000000..4042b40 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TServices.java @@ -0,0 +1,1059 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tServices complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tServices">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <all>
+ *         <element name="DynAssociation" type="{http://www.iec.ch/61850/2003/SCL}tServiceWithOptionalMax" minOccurs="0"/>
+ *         <element name="SettingGroups" type="{http://www.iec.ch/61850/2003/SCL}tSettingGroups" minOccurs="0"/>
+ *         <element name="GetDirectory" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="GetDataObjectDefinition" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="DataObjectDirectory" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="GetDataSetValue" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="SetDataSetValue" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="DataSetDirectory" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="ConfDataSet" type="{http://www.iec.ch/61850/2003/SCL}tServiceForConfDataSet" minOccurs="0"/>
+ *         <element name="DynDataSet" type="{http://www.iec.ch/61850/2003/SCL}tServiceWithMaxAndMaxAttributes" minOccurs="0"/>
+ *         <element name="ReadWrite" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="TimerActivatedControl" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="ConfReportControl" type="{http://www.iec.ch/61850/2003/SCL}tServiceConfReportControl" minOccurs="0"/>
+ *         <element name="GetCBValues" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="ConfLogControl" type="{http://www.iec.ch/61850/2003/SCL}tServiceWithMaxNonZero" minOccurs="0"/>
+ *         <element name="ReportSettings" type="{http://www.iec.ch/61850/2003/SCL}tReportSettings" minOccurs="0"/>
+ *         <element name="LogSettings" type="{http://www.iec.ch/61850/2003/SCL}tLogSettings" minOccurs="0"/>
+ *         <element name="GSESettings" type="{http://www.iec.ch/61850/2003/SCL}tGSESettings" minOccurs="0"/>
+ *         <element name="SMVSettings" type="{http://www.iec.ch/61850/2003/SCL}tSMVSettings" minOccurs="0"/>
+ *         <element name="GSEDir" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="GOOSE" type="{http://www.iec.ch/61850/2003/SCL}tGOOSEcapabilities" minOccurs="0"/>
+ *         <element name="GSSE" type="{http://www.iec.ch/61850/2003/SCL}tServiceWithMax" minOccurs="0"/>
+ *         <element name="SMVsc" type="{http://www.iec.ch/61850/2003/SCL}tSMVsc" minOccurs="0"/>
+ *         <element name="FileHandling" type="{http://www.iec.ch/61850/2003/SCL}tFileHandling" minOccurs="0"/>
+ *         <element name="ConfLNs" type="{http://www.iec.ch/61850/2003/SCL}tConfLNs" minOccurs="0"/>
+ *         <element name="ClientServices" type="{http://www.iec.ch/61850/2003/SCL}tClientServices" minOccurs="0"/>
+ *         <element name="ConfLdName" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *         <element name="SupSubscription" type="{http://www.iec.ch/61850/2003/SCL}tSupSubscription" minOccurs="0"/>
+ *         <element name="ConfSigRef" type="{http://www.iec.ch/61850/2003/SCL}tServiceWithMaxNonZero" minOccurs="0"/>
+ *         <element name="ValueHandling" type="{http://www.iec.ch/61850/2003/SCL}tValueHandling" minOccurs="0"/>
+ *         <element name="RedProt" type="{http://www.iec.ch/61850/2003/SCL}tRedProt" minOccurs="0"/>
+ *         <element name="TimeSyncProt" type="{http://www.iec.ch/61850/2003/SCL}tTimeSyncProt" minOccurs="0"/>
+ *         <element name="CommProt" type="{http://www.iec.ch/61850/2003/SCL}tCommProt" minOccurs="0"/>
+ *         <element name="SCSM" type="{http://www.iec.ch/61850/2003/SCL}tSCSM" minOccurs="0"/>
+ *         <element name="Security" type="{http://www.iec.ch/61850/2003/SCL}tSecurity" minOccurs="0"/>
+ *         <element name="MultiAPPerSubNet" type="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo" minOccurs="0"/>
+ *       </all>
+ *       <attribute name="nameLength" default="32">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}token">
+ *             <pattern value="32"/>
+ *             <pattern value="64"/>
+ *             <pattern value="6[5-9]"/>
+ *             <pattern value="[7-9]\d"/>
+ *             <pattern value="[1-9]\d\d+"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tServices", propOrder = { + +}) +public class TServices { + + @XmlElement(name = "DynAssociation") + protected TServiceWithOptionalMax dynAssociation; + @XmlElement(name = "SettingGroups") + protected TSettingGroups settingGroups; + @XmlElement(name = "GetDirectory") + protected TServiceYesNo getDirectory; + @XmlElement(name = "GetDataObjectDefinition") + protected TServiceYesNo getDataObjectDefinition; + @XmlElement(name = "DataObjectDirectory") + protected TServiceYesNo dataObjectDirectory; + @XmlElement(name = "GetDataSetValue") + protected TServiceYesNo getDataSetValue; + @XmlElement(name = "SetDataSetValue") + protected TServiceYesNo setDataSetValue; + @XmlElement(name = "DataSetDirectory") + protected TServiceYesNo dataSetDirectory; + @XmlElement(name = "ConfDataSet") + protected TServiceForConfDataSet confDataSet; + @XmlElement(name = "DynDataSet") + protected TServiceWithMaxAndMaxAttributes dynDataSet; + @XmlElement(name = "ReadWrite") + protected TServiceYesNo readWrite; + @XmlElement(name = "TimerActivatedControl") + protected TServiceYesNo timerActivatedControl; + @XmlElement(name = "ConfReportControl") + protected TServiceConfReportControl confReportControl; + @XmlElement(name = "GetCBValues") + protected TServiceYesNo getCBValues; + @XmlElement(name = "ConfLogControl") + protected TServiceWithMaxNonZero confLogControl; + @XmlElement(name = "ReportSettings") + protected TReportSettings reportSettings; + @XmlElement(name = "LogSettings") + protected TLogSettings logSettings; + @XmlElement(name = "GSESettings") + protected TGSESettings gseSettings; + @XmlElement(name = "SMVSettings") + protected TSMVSettings smvSettings; + @XmlElement(name = "GSEDir") + protected TServiceYesNo gseDir; + @XmlElement(name = "GOOSE") + protected TGOOSEcapabilities goose; + @XmlElement(name = "GSSE") + protected TServiceWithMax gsse; + @XmlElement(name = "SMVsc") + protected TSMVsc smVsc; + @XmlElement(name = "FileHandling") + protected TFileHandling fileHandling; + @XmlElement(name = "ConfLNs") + protected TConfLNs confLNs; + @XmlElement(name = "ClientServices") + protected TClientServices clientServices; + @XmlElement(name = "ConfLdName") + protected TServiceYesNo confLdName; + @XmlElement(name = "SupSubscription") + protected TSupSubscription supSubscription; + @XmlElement(name = "ConfSigRef") + protected TServiceWithMaxNonZero confSigRef; + @XmlElement(name = "ValueHandling") + protected TValueHandling valueHandling; + @XmlElement(name = "RedProt") + protected TRedProt redProt; + @XmlElement(name = "TimeSyncProt") + protected TTimeSyncProt timeSyncProt; + @XmlElement(name = "CommProt") + protected TCommProt commProt; + @XmlElement(name = "SCSM") + protected TSCSM scsm; + @XmlElement(name = "Security") + protected TSecurity security; + @XmlElement(name = "MultiAPPerSubNet") + protected TServiceYesNo multiAPPerSubNet; + @XmlAttribute(name = "nameLength") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + protected String nameLength; + + /** + * 获取dynAssociation属性的值。 + * + * @return + * possible object is + * {@link TServiceWithOptionalMax } + * + */ + public TServiceWithOptionalMax getDynAssociation() { + return dynAssociation; + } + + /** + * 设置dynAssociation属性的值。 + * + * @param value + * allowed object is + * {@link TServiceWithOptionalMax } + * + */ + public void setDynAssociation(TServiceWithOptionalMax value) { + this.dynAssociation = value; + } + + /** + * 获取settingGroups属性的值。 + * + * @return + * possible object is + * {@link TSettingGroups } + * + */ + public TSettingGroups getSettingGroups() { + return settingGroups; + } + + /** + * 设置settingGroups属性的值。 + * + * @param value + * allowed object is + * {@link TSettingGroups } + * + */ + public void setSettingGroups(TSettingGroups value) { + this.settingGroups = value; + } + + /** + * 获取getDirectory属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getGetDirectory() { + return getDirectory; + } + + /** + * 设置getDirectory属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setGetDirectory(TServiceYesNo value) { + this.getDirectory = value; + } + + /** + * 获取getDataObjectDefinition属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getGetDataObjectDefinition() { + return getDataObjectDefinition; + } + + /** + * 设置getDataObjectDefinition属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setGetDataObjectDefinition(TServiceYesNo value) { + this.getDataObjectDefinition = value; + } + + /** + * 获取dataObjectDirectory属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getDataObjectDirectory() { + return dataObjectDirectory; + } + + /** + * 设置dataObjectDirectory属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setDataObjectDirectory(TServiceYesNo value) { + this.dataObjectDirectory = value; + } + + /** + * 获取getDataSetValue属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getGetDataSetValue() { + return getDataSetValue; + } + + /** + * 设置getDataSetValue属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setGetDataSetValue(TServiceYesNo value) { + this.getDataSetValue = value; + } + + /** + * 获取setDataSetValue属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getSetDataSetValue() { + return setDataSetValue; + } + + /** + * 设置setDataSetValue属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setSetDataSetValue(TServiceYesNo value) { + this.setDataSetValue = value; + } + + /** + * 获取dataSetDirectory属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getDataSetDirectory() { + return dataSetDirectory; + } + + /** + * 设置dataSetDirectory属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setDataSetDirectory(TServiceYesNo value) { + this.dataSetDirectory = value; + } + + /** + * 获取confDataSet属性的值。 + * + * @return + * possible object is + * {@link TServiceForConfDataSet } + * + */ + public TServiceForConfDataSet getConfDataSet() { + return confDataSet; + } + + /** + * 设置confDataSet属性的值。 + * + * @param value + * allowed object is + * {@link TServiceForConfDataSet } + * + */ + public void setConfDataSet(TServiceForConfDataSet value) { + this.confDataSet = value; + } + + /** + * 获取dynDataSet属性的值。 + * + * @return + * possible object is + * {@link TServiceWithMaxAndMaxAttributes } + * + */ + public TServiceWithMaxAndMaxAttributes getDynDataSet() { + return dynDataSet; + } + + /** + * 设置dynDataSet属性的值。 + * + * @param value + * allowed object is + * {@link TServiceWithMaxAndMaxAttributes } + * + */ + public void setDynDataSet(TServiceWithMaxAndMaxAttributes value) { + this.dynDataSet = value; + } + + /** + * 获取readWrite属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getReadWrite() { + return readWrite; + } + + /** + * 设置readWrite属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setReadWrite(TServiceYesNo value) { + this.readWrite = value; + } + + /** + * 获取timerActivatedControl属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getTimerActivatedControl() { + return timerActivatedControl; + } + + /** + * 设置timerActivatedControl属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setTimerActivatedControl(TServiceYesNo value) { + this.timerActivatedControl = value; + } + + /** + * 获取confReportControl属性的值。 + * + * @return + * possible object is + * {@link TServiceConfReportControl } + * + */ + public TServiceConfReportControl getConfReportControl() { + return confReportControl; + } + + /** + * 设置confReportControl属性的值。 + * + * @param value + * allowed object is + * {@link TServiceConfReportControl } + * + */ + public void setConfReportControl(TServiceConfReportControl value) { + this.confReportControl = value; + } + + /** + * 获取getCBValues属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getGetCBValues() { + return getCBValues; + } + + /** + * 设置getCBValues属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setGetCBValues(TServiceYesNo value) { + this.getCBValues = value; + } + + /** + * 获取confLogControl属性的值。 + * + * @return + * possible object is + * {@link TServiceWithMaxNonZero } + * + */ + public TServiceWithMaxNonZero getConfLogControl() { + return confLogControl; + } + + /** + * 设置confLogControl属性的值。 + * + * @param value + * allowed object is + * {@link TServiceWithMaxNonZero } + * + */ + public void setConfLogControl(TServiceWithMaxNonZero value) { + this.confLogControl = value; + } + + /** + * 获取reportSettings属性的值。 + * + * @return + * possible object is + * {@link TReportSettings } + * + */ + public TReportSettings getReportSettings() { + return reportSettings; + } + + /** + * 设置reportSettings属性的值。 + * + * @param value + * allowed object is + * {@link TReportSettings } + * + */ + public void setReportSettings(TReportSettings value) { + this.reportSettings = value; + } + + /** + * 获取logSettings属性的值。 + * + * @return + * possible object is + * {@link TLogSettings } + * + */ + public TLogSettings getLogSettings() { + return logSettings; + } + + /** + * 设置logSettings属性的值。 + * + * @param value + * allowed object is + * {@link TLogSettings } + * + */ + public void setLogSettings(TLogSettings value) { + this.logSettings = value; + } + + /** + * 获取gseSettings属性的值。 + * + * @return + * possible object is + * {@link TGSESettings } + * + */ + public TGSESettings getGSESettings() { + return gseSettings; + } + + /** + * 设置gseSettings属性的值。 + * + * @param value + * allowed object is + * {@link TGSESettings } + * + */ + public void setGSESettings(TGSESettings value) { + this.gseSettings = value; + } + + /** + * 获取smvSettings属性的值。 + * + * @return + * possible object is + * {@link TSMVSettings } + * + */ + public TSMVSettings getSMVSettings() { + return smvSettings; + } + + /** + * 设置smvSettings属性的值。 + * + * @param value + * allowed object is + * {@link TSMVSettings } + * + */ + public void setSMVSettings(TSMVSettings value) { + this.smvSettings = value; + } + + /** + * 获取gseDir属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getGSEDir() { + return gseDir; + } + + /** + * 设置gseDir属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setGSEDir(TServiceYesNo value) { + this.gseDir = value; + } + + /** + * 获取goose属性的值。 + * + * @return + * possible object is + * {@link TGOOSEcapabilities } + * + */ + public TGOOSEcapabilities getGOOSE() { + return goose; + } + + /** + * 设置goose属性的值。 + * + * @param value + * allowed object is + * {@link TGOOSEcapabilities } + * + */ + public void setGOOSE(TGOOSEcapabilities value) { + this.goose = value; + } + + /** + * 获取gsse属性的值。 + * + * @return + * possible object is + * {@link TServiceWithMax } + * + */ + public TServiceWithMax getGSSE() { + return gsse; + } + + /** + * 设置gsse属性的值。 + * + * @param value + * allowed object is + * {@link TServiceWithMax } + * + */ + public void setGSSE(TServiceWithMax value) { + this.gsse = value; + } + + /** + * 获取smVsc属性的值。 + * + * @return + * possible object is + * {@link TSMVsc } + * + */ + public TSMVsc getSMVsc() { + return smVsc; + } + + /** + * 设置smVsc属性的值。 + * + * @param value + * allowed object is + * {@link TSMVsc } + * + */ + public void setSMVsc(TSMVsc value) { + this.smVsc = value; + } + + /** + * 获取fileHandling属性的值。 + * + * @return + * possible object is + * {@link TFileHandling } + * + */ + public TFileHandling getFileHandling() { + return fileHandling; + } + + /** + * 设置fileHandling属性的值。 + * + * @param value + * allowed object is + * {@link TFileHandling } + * + */ + public void setFileHandling(TFileHandling value) { + this.fileHandling = value; + } + + /** + * 获取confLNs属性的值。 + * + * @return + * possible object is + * {@link TConfLNs } + * + */ + public TConfLNs getConfLNs() { + return confLNs; + } + + /** + * 设置confLNs属性的值。 + * + * @param value + * allowed object is + * {@link TConfLNs } + * + */ + public void setConfLNs(TConfLNs value) { + this.confLNs = value; + } + + /** + * 获取clientServices属性的值。 + * + * @return + * possible object is + * {@link TClientServices } + * + */ + public TClientServices getClientServices() { + return clientServices; + } + + /** + * 设置clientServices属性的值。 + * + * @param value + * allowed object is + * {@link TClientServices } + * + */ + public void setClientServices(TClientServices value) { + this.clientServices = value; + } + + /** + * 获取confLdName属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getConfLdName() { + return confLdName; + } + + /** + * 设置confLdName属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setConfLdName(TServiceYesNo value) { + this.confLdName = value; + } + + /** + * 获取supSubscription属性的值。 + * + * @return + * possible object is + * {@link TSupSubscription } + * + */ + public TSupSubscription getSupSubscription() { + return supSubscription; + } + + /** + * 设置supSubscription属性的值。 + * + * @param value + * allowed object is + * {@link TSupSubscription } + * + */ + public void setSupSubscription(TSupSubscription value) { + this.supSubscription = value; + } + + /** + * 获取confSigRef属性的值。 + * + * @return + * possible object is + * {@link TServiceWithMaxNonZero } + * + */ + public TServiceWithMaxNonZero getConfSigRef() { + return confSigRef; + } + + /** + * 设置confSigRef属性的值。 + * + * @param value + * allowed object is + * {@link TServiceWithMaxNonZero } + * + */ + public void setConfSigRef(TServiceWithMaxNonZero value) { + this.confSigRef = value; + } + + /** + * 获取valueHandling属性的值。 + * + * @return + * possible object is + * {@link TValueHandling } + * + */ + public TValueHandling getValueHandling() { + return valueHandling; + } + + /** + * 设置valueHandling属性的值。 + * + * @param value + * allowed object is + * {@link TValueHandling } + * + */ + public void setValueHandling(TValueHandling value) { + this.valueHandling = value; + } + + /** + * 获取redProt属性的值。 + * + * @return + * possible object is + * {@link TRedProt } + * + */ + public TRedProt getRedProt() { + return redProt; + } + + /** + * 设置redProt属性的值。 + * + * @param value + * allowed object is + * {@link TRedProt } + * + */ + public void setRedProt(TRedProt value) { + this.redProt = value; + } + + /** + * 获取timeSyncProt属性的值。 + * + * @return + * possible object is + * {@link TTimeSyncProt } + * + */ + public TTimeSyncProt getTimeSyncProt() { + return timeSyncProt; + } + + /** + * 设置timeSyncProt属性的值。 + * + * @param value + * allowed object is + * {@link TTimeSyncProt } + * + */ + public void setTimeSyncProt(TTimeSyncProt value) { + this.timeSyncProt = value; + } + + /** + * 获取commProt属性的值。 + * + * @return + * possible object is + * {@link TCommProt } + * + */ + public TCommProt getCommProt() { + return commProt; + } + + /** + * 设置commProt属性的值。 + * + * @param value + * allowed object is + * {@link TCommProt } + * + */ + public void setCommProt(TCommProt value) { + this.commProt = value; + } + + /** + * 获取scsm属性的值。 + * + * @return + * possible object is + * {@link TSCSM } + * + */ + public TSCSM getSCSM() { + return scsm; + } + + /** + * 设置scsm属性的值。 + * + * @param value + * allowed object is + * {@link TSCSM } + * + */ + public void setSCSM(TSCSM value) { + this.scsm = value; + } + + /** + * 获取security属性的值。 + * + * @return + * possible object is + * {@link TSecurity } + * + */ + public TSecurity getSecurity() { + return security; + } + + /** + * 设置security属性的值。 + * + * @param value + * allowed object is + * {@link TSecurity } + * + */ + public void setSecurity(TSecurity value) { + this.security = value; + } + + /** + * 获取multiAPPerSubNet属性的值。 + * + * @return + * possible object is + * {@link TServiceYesNo } + * + */ + public TServiceYesNo getMultiAPPerSubNet() { + return multiAPPerSubNet; + } + + /** + * 设置multiAPPerSubNet属性的值。 + * + * @param value + * allowed object is + * {@link TServiceYesNo } + * + */ + public void setMultiAPPerSubNet(TServiceYesNo value) { + this.multiAPPerSubNet = value; + } + + /** + * 获取nameLength属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getNameLength() { + if (nameLength == null) { + return "32"; + } else { + return nameLength; + } + } + + /** + * 设置nameLength属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNameLength(String value) { + this.nameLength = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSettingControl.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSettingControl.java new file mode 100644 index 0000000..0e0cc35 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSettingControl.java @@ -0,0 +1,132 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSettingControl complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSettingControl">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <attribute name="numOfSGs" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *             <minInclusive value="1"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="actSG" default="1">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedInt">
+ *             <minInclusive value="1"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="resvTms" type="{http://www.w3.org/2001/XMLSchema}unsignedShort" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSettingControl") +public class TSettingControl + extends TUnNaming +{ + + @XmlAttribute(name = "numOfSGs", required = true) + protected long numOfSGs; + @XmlAttribute(name = "actSG") + protected Long actSG; + @XmlAttribute(name = "resvTms") + @XmlSchemaType(name = "unsignedShort") + protected Integer resvTms; + + /** + * 获取numOfSGs属性的值。 + * + */ + public long getNumOfSGs() { + return numOfSGs; + } + + /** + * 设置numOfSGs属性的值。 + * + */ + public void setNumOfSGs(long value) { + this.numOfSGs = value; + } + + /** + * 获取actSG属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public long getActSG() { + if (actSG == null) { + return 1L; + } else { + return actSG; + } + } + + /** + * 设置actSG属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setActSG(Long value) { + this.actSG = value; + } + + /** + * 获取resvTms属性的值。 + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getResvTms() { + return resvTms; + } + + /** + * 设置resvTms属性的值。 + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setResvTms(Integer value) { + this.resvTms = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSettingGroups.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSettingGroups.java new file mode 100644 index 0000000..5177474 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSettingGroups.java @@ -0,0 +1,227 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSettingGroups complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSettingGroups">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <all>
+ *         <element name="SGEdit" minOccurs="0">
+ *           <complexType>
+ *             <complexContent>
+ *               <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+ *                 <attribute name="resvTms" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *               </extension>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="ConfSG" minOccurs="0">
+ *           <complexType>
+ *             <complexContent>
+ *               <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+ *                 <attribute name="resvTms" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *               </extension>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </all>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSettingGroups", propOrder = { + +}) +public class TSettingGroups { + + @XmlElement(name = "SGEdit") + protected TSettingGroups.SGEdit sgEdit; + @XmlElement(name = "ConfSG") + protected TSettingGroups.ConfSG confSG; + + /** + * 获取sgEdit属性的值。 + * + * @return + * possible object is + * {@link TSettingGroups.SGEdit } + * + */ + public TSettingGroups.SGEdit getSGEdit() { + return sgEdit; + } + + /** + * 设置sgEdit属性的值。 + * + * @param value + * allowed object is + * {@link TSettingGroups.SGEdit } + * + */ + public void setSGEdit(TSettingGroups.SGEdit value) { + this.sgEdit = value; + } + + /** + * 获取confSG属性的值。 + * + * @return + * possible object is + * {@link TSettingGroups.ConfSG } + * + */ + public TSettingGroups.ConfSG getConfSG() { + return confSG; + } + + /** + * 设置confSG属性的值。 + * + * @param value + * allowed object is + * {@link TSettingGroups.ConfSG } + * + */ + public void setConfSG(TSettingGroups.ConfSG value) { + this.confSG = value; + } + + + /** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+     *       <attribute name="resvTms" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+     *     </extension>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class ConfSG + extends TServiceYesNo + { + + @XmlAttribute(name = "resvTms") + protected Boolean resvTms; + + /** + * 获取resvTms属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isResvTms() { + if (resvTms == null) { + return false; + } else { + return resvTms; + } + } + + /** + * 设置resvTms属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setResvTms(Boolean value) { + this.resvTms = value; + } + + } + + + /** + *

anonymous complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+     *       <attribute name="resvTms" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+     *     </extension>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class SGEdit + extends TServiceYesNo + { + + @XmlAttribute(name = "resvTms") + protected Boolean resvTms; + + /** + * 获取resvTms属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isResvTms() { + if (resvTms == null) { + return false; + } else { + return resvTms; + } + } + + /** + * 设置resvTms属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setResvTms(Boolean value) { + this.resvTms = value; + } + + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSmpMod.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSmpMod.java new file mode 100644 index 0000000..e2e245d --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSmpMod.java @@ -0,0 +1,61 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSmpMod的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tSmpMod">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}normalizedString">
+ *     <enumeration value="SmpPerPeriod"/>
+ *     <enumeration value="SmpPerSec"/>
+ *     <enumeration value="SecPerSmp"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tSmpMod") +@XmlEnum +public enum TSmpMod { + + @XmlEnumValue("SmpPerPeriod") + SMP_PER_PERIOD("SmpPerPeriod"), + @XmlEnumValue("SmpPerSec") + SMP_PER_SEC("SmpPerSec"), + @XmlEnumValue("SecPerSmp") + SEC_PER_SMP("SecPerSmp"); + private final String value; + + TSmpMod(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TSmpMod fromValue(String v) { + for (TSmpMod c: TSmpMod.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubEquipment.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubEquipment.java new file mode 100644 index 0000000..021ab94 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubEquipment.java @@ -0,0 +1,142 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSubEquipment complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSubEquipment">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <sequence>
+ *         <element name="EqFunction" type="{http://www.iec.ch/61850/2003/SCL}tEqFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agVirtual"/>
+ *       <attribute name="phase" type="{http://www.iec.ch/61850/2003/SCL}tPhaseEnum" default="none" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSubEquipment", propOrder = { + "eqFunction" +}) +public class TSubEquipment + extends TPowerSystemResource +{ + + @XmlElement(name = "EqFunction") + protected List eqFunction; + @XmlAttribute(name = "phase") + protected TPhaseEnum phase; + @XmlAttribute(name = "virtual") + protected Boolean virtual; + + /** + * Gets the value of the eqFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the eqFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEqFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEqFunction } + * + * + */ + public List getEqFunction() { + if (eqFunction == null) { + eqFunction = new ArrayList(); + } + return this.eqFunction; + } + + /** + * 获取phase属性的值。 + * + * @return + * possible object is + * {@link TPhaseEnum } + * + */ + public TPhaseEnum getPhase() { + if (phase == null) { + return TPhaseEnum.NONE; + } else { + return phase; + } + } + + /** + * 设置phase属性的值。 + * + * @param value + * allowed object is + * {@link TPhaseEnum } + * + */ + public void setPhase(TPhaseEnum value) { + this.phase = value; + } + + /** + * 获取virtual属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isVirtual() { + if (virtual == null) { + return false; + } else { + return virtual; + } + } + + /** + * 设置virtual属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setVirtual(Boolean value) { + this.virtual = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubFunction.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubFunction.java new file mode 100644 index 0000000..0cf2149 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubFunction.java @@ -0,0 +1,178 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tSubFunction complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSubFunction">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <sequence>
+ *         <element name="GeneralEquipment" type="{http://www.iec.ch/61850/2003/SCL}tGeneralEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="ConductingEquipment" type="{http://www.iec.ch/61850/2003/SCL}tConductingEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="SubFunction" type="{http://www.iec.ch/61850/2003/SCL}tSubFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}normalizedString" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSubFunction", propOrder = { + "generalEquipment", + "conductingEquipment", + "subFunction" +}) +public class TSubFunction + extends TPowerSystemResource +{ + + @XmlElement(name = "GeneralEquipment") + protected List generalEquipment; + @XmlElement(name = "ConductingEquipment") + protected List conductingEquipment; + @XmlElement(name = "SubFunction") + protected List subFunction; + @XmlAttribute(name = "type") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String type; + + /** + * Gets the value of the generalEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the generalEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGeneralEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TGeneralEquipment } + * + * + */ + public List getGeneralEquipment() { + if (generalEquipment == null) { + generalEquipment = new ArrayList(); + } + return this.generalEquipment; + } + + /** + * Gets the value of the conductingEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the conductingEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConductingEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConductingEquipment } + * + * + */ + public List getConductingEquipment() { + if (conductingEquipment == null) { + conductingEquipment = new ArrayList(); + } + return this.conductingEquipment; + } + + /** + * Gets the value of the subFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the subFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubFunction } + * + * + */ + public List getSubFunction() { + if (subFunction == null) { + subFunction = new ArrayList(); + } + return this.subFunction; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubNetwork.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubNetwork.java new file mode 100644 index 0000000..02ea9e9 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubNetwork.java @@ -0,0 +1,135 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSubNetwork complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSubNetwork">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tNaming">
+ *       <sequence>
+ *         <element name="BitRate" type="{http://www.iec.ch/61850/2003/SCL}tBitRateInMbPerSec" minOccurs="0"/>
+ *         <element name="ConnectedAP" type="{http://www.iec.ch/61850/2003/SCL}tConnectedAP" maxOccurs="unbounded"/>
+ *       </sequence>
+ *       <attribute name="type" type="{http://www.iec.ch/61850/2003/SCL}tSubnetType" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSubNetwork", propOrder = { + "bitRate", + "connectedAP" +}) +public class TSubNetwork + extends TNaming +{ + + @XmlElement(name = "BitRate") + protected TBitRateInMbPerSec bitRate; + @XmlElement(name = "ConnectedAP", required = true) + protected List connectedAP; + @XmlAttribute(name = "type") + protected String type; + + /** + * 获取bitRate属性的值。 + * + * @return + * possible object is + * {@link TBitRateInMbPerSec } + * + */ + public TBitRateInMbPerSec getBitRate() { + return bitRate; + } + + /** + * 设置bitRate属性的值。 + * + * @param value + * allowed object is + * {@link TBitRateInMbPerSec } + * + */ + public void setBitRate(TBitRateInMbPerSec value) { + this.bitRate = value; + } + + /** + * Gets the value of the connectedAP property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the connectedAP property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getConnectedAP().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TConnectedAP } + * + * + */ + public List getConnectedAP() { + if (connectedAP == null) { + connectedAP = new ArrayList(); + } + return this.connectedAP; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubstation.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubstation.java new file mode 100644 index 0000000..089eedc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSubstation.java @@ -0,0 +1,112 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSubstation complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSubstation">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tEquipmentContainer">
+ *       <sequence>
+ *         <element name="VoltageLevel" type="{http://www.iec.ch/61850/2003/SCL}tVoltageLevel" maxOccurs="unbounded"/>
+ *         <element name="Function" type="{http://www.iec.ch/61850/2003/SCL}tFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSubstation", propOrder = { + "voltageLevel", + "function" +}) +public class TSubstation + extends TEquipmentContainer +{ + + @XmlElement(name = "VoltageLevel", required = true) + protected List voltageLevel; + @XmlElement(name = "Function") + protected List function; + + /** + * Gets the value of the voltageLevel property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the voltageLevel property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getVoltageLevel().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TVoltageLevel } + * + * + */ + public List getVoltageLevel() { + if (voltageLevel == null) { + voltageLevel = new ArrayList(); + } + return this.voltageLevel; + } + + /** + * Gets the value of the function property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the function property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TFunction } + * + * + */ + public List getFunction() { + if (function == null) { + function = new ArrayList(); + } + return this.function; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSupSubscription.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSupSubscription.java new file mode 100644 index 0000000..05b708e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSupSubscription.java @@ -0,0 +1,79 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSupSubscription complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tSupSubscription">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="maxGo" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *       <attribute name="maxSv" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tSupSubscription") +public class TSupSubscription { + + @XmlAttribute(name = "maxGo", required = true) + @XmlSchemaType(name = "unsignedInt") + protected long maxGo; + @XmlAttribute(name = "maxSv", required = true) + @XmlSchemaType(name = "unsignedInt") + protected long maxSv; + + /** + * 获取maxGo属性的值。 + * + */ + public long getMaxGo() { + return maxGo; + } + + /** + * 设置maxGo属性的值。 + * + */ + public void setMaxGo(long value) { + this.maxGo = value; + } + + /** + * 获取maxSv属性的值。 + * + */ + public long getMaxSv() { + return maxSv; + } + + /** + * 设置maxSv属性的值。 + * + */ + public void setMaxSv(long value) { + this.maxSv = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSystemLNGroupEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSystemLNGroupEnum.java new file mode 100644 index 0000000..0a05bf7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TSystemLNGroupEnum.java @@ -0,0 +1,72 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tSystemLNGroupEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tSystemLNGroupEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <length value="4"/>
+ *     <pattern value="L[A-Z]*"/>
+ *     <pattern value="LLN0"/>
+ *     <enumeration value="LLN0"/>
+ *     <enumeration value="LPHD"/>
+ *     <enumeration value="LCCH"/>
+ *     <enumeration value="LGOS"/>
+ *     <enumeration value="LSVS"/>
+ *     <enumeration value="LTIM"/>
+ *     <enumeration value="LTMS"/>
+ *     <enumeration value="LTRK"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tSystemLNGroupEnum") +@XmlEnum +public enum TSystemLNGroupEnum { + + @XmlEnumValue("LLN0") + LLN_0("LLN0"), + LPHD("LPHD"), + LCCH("LCCH"), + LGOS("LGOS"), + LSVS("LSVS"), + LTIM("LTIM"), + LTMS("LTMS"), + LTRK("LTRK"); + private final String value; + + TSystemLNGroupEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TSystemLNGroupEnum fromValue(String v) { + for (TSystemLNGroupEnum c: TSystemLNGroupEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTapChanger.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTapChanger.java new file mode 100644 index 0000000..da1443a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTapChanger.java @@ -0,0 +1,180 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tTapChanger complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tTapChanger">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tPowerSystemResource">
+ *       <sequence>
+ *         <element name="SubEquipment" type="{http://www.iec.ch/61850/2003/SCL}tSubEquipment" maxOccurs="unbounded" minOccurs="0"/>
+ *         <element name="EqFunction" type="{http://www.iec.ch/61850/2003/SCL}tEqFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agVirtual"/>
+ *       <attribute name="type" use="required" type="{http://www.w3.org/2001/XMLSchema}Name" fixed="LTC" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tTapChanger", propOrder = { + "subEquipment", + "eqFunction" +}) +public class TTapChanger + extends TPowerSystemResource +{ + + @XmlElement(name = "SubEquipment") + protected List subEquipment; + @XmlElement(name = "EqFunction") + protected List eqFunction; + @XmlAttribute(name = "type", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "Name") + protected String type; + @XmlAttribute(name = "virtual") + protected Boolean virtual; + + /** + * Gets the value of the subEquipment property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the subEquipment property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getSubEquipment().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TSubEquipment } + * + * + */ + public List getSubEquipment() { + if (subEquipment == null) { + subEquipment = new ArrayList(); + } + return this.subEquipment; + } + + /** + * Gets the value of the eqFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the eqFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEqFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEqFunction } + * + * + */ + public List getEqFunction() { + if (eqFunction == null) { + eqFunction = new ArrayList(); + } + return this.eqFunction; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + if (type == null) { + return "LTC"; + } else { + return type; + } + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + /** + * 获取virtual属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isVirtual() { + if (virtual == null) { + return false; + } else { + return virtual; + } + } + + /** + * 设置virtual属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setVirtual(Boolean value) { + this.virtual = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTerminal.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTerminal.java new file mode 100644 index 0000000..d48e688 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTerminal.java @@ -0,0 +1,298 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tTerminal complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tTerminal">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tUnNaming">
+ *       <attribute name="name" type="{http://www.iec.ch/61850/2003/SCL}tAnyName" default="" />
+ *       <attribute name="connectivityNode" use="required" type="{http://www.iec.ch/61850/2003/SCL}tConnectivityNodeReference" />
+ *       <attribute name="processName" type="{http://www.iec.ch/61850/2003/SCL}tProcessName" />
+ *       <attribute name="lineName" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="substationName" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="voltageLevelName" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="bayName" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="cNodeName" use="required" type="{http://www.iec.ch/61850/2003/SCL}tName" />
+ *       <attribute name="cNodeUuid" type="{http://www.iec.ch/61850/2003/SCL}tUUIDAttribute" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tTerminal") +public class TTerminal + extends TUnNaming +{ + + @XmlAttribute(name = "name") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String name; + @XmlAttribute(name = "connectivityNode", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String connectivityNode; + @XmlAttribute(name = "processName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String processName; + @XmlAttribute(name = "lineName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String lineName; + @XmlAttribute(name = "substationName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String substationName; + @XmlAttribute(name = "voltageLevelName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String voltageLevelName; + @XmlAttribute(name = "bayName") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String bayName; + @XmlAttribute(name = "cNodeName", required = true) + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String cNodeName; + @XmlAttribute(name = "cNodeUuid") + protected String cNodeUuid; + + /** + * 获取name属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + if (name == null) { + return ""; + } else { + return name; + } + } + + /** + * 设置name属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * 获取connectivityNode属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getConnectivityNode() { + return connectivityNode; + } + + /** + * 设置connectivityNode属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setConnectivityNode(String value) { + this.connectivityNode = value; + } + + /** + * 获取processName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getProcessName() { + return processName; + } + + /** + * 设置processName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProcessName(String value) { + this.processName = value; + } + + /** + * 获取lineName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getLineName() { + return lineName; + } + + /** + * 设置lineName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLineName(String value) { + this.lineName = value; + } + + /** + * 获取substationName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSubstationName() { + return substationName; + } + + /** + * 设置substationName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSubstationName(String value) { + this.substationName = value; + } + + /** + * 获取voltageLevelName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getVoltageLevelName() { + return voltageLevelName; + } + + /** + * 设置voltageLevelName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVoltageLevelName(String value) { + this.voltageLevelName = value; + } + + /** + * 获取bayName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getBayName() { + return bayName; + } + + /** + * 设置bayName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setBayName(String value) { + this.bayName = value; + } + + /** + * 获取cNodeName属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getCNodeName() { + return cNodeName; + } + + /** + * 设置cNodeName属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCNodeName(String value) { + this.cNodeName = value; + } + + /** + * 获取cNodeUuid属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getCNodeUuid() { + return cNodeUuid; + } + + /** + * 设置cNodeUuid属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCNodeUuid(String value) { + this.cNodeUuid = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TText.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TText.java new file mode 100644 index 0000000..8a43b29 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TText.java @@ -0,0 +1,70 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tText complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tText">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAnyContentFromOtherNamespace">
+ *       <attribute name="source" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tText") +public class TText + extends TAnyContentFromOtherNamespace +{ + + @XmlAttribute(name = "source") + @XmlSchemaType(name = "anyURI") + protected String source; + + /** + * 获取source属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getSource() { + return source; + } + + /** + * 设置source属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSource(String value) { + this.source = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTimeSyncProt.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTimeSyncProt.java new file mode 100644 index 0000000..2b828dc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTimeSyncProt.java @@ -0,0 +1,164 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tTimeSyncProt complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tTimeSyncProt">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tServiceYesNo">
+ *       <attribute name="sntp" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *       <attribute name="iec61850_9_3" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="c37_238" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="other" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tTimeSyncProt") +public class TTimeSyncProt + extends TServiceYesNo +{ + + @XmlAttribute(name = "sntp") + protected Boolean sntp; + @XmlAttribute(name = "iec61850_9_3") + protected Boolean iec6185093; + @XmlAttribute(name = "c37_238") + protected Boolean c37238; + @XmlAttribute(name = "other") + protected Boolean other; + + /** + * 获取sntp属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSntp() { + if (sntp == null) { + return true; + } else { + return sntp; + } + } + + /** + * 设置sntp属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSntp(Boolean value) { + this.sntp = value; + } + + /** + * 获取iec6185093属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isIec6185093() { + if (iec6185093 == null) { + return false; + } else { + return iec6185093; + } + } + + /** + * 设置iec6185093属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setIec6185093(Boolean value) { + this.iec6185093 = value; + } + + /** + * 获取c37238属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isC37238() { + if (c37238 == null) { + return false; + } else { + return c37238; + } + } + + /** + * 设置c37238属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setC37238(Boolean value) { + this.c37238 = value; + } + + /** + * 获取other属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isOther() { + if (other == null) { + return false; + } else { + return other; + } + } + + /** + * 设置other属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setOther(Boolean value) { + this.other = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTransformerWinding.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTransformerWinding.java new file mode 100644 index 0000000..894e898 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTransformerWinding.java @@ -0,0 +1,167 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tTransformerWinding complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tTransformerWinding">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tAbstractConductingEquipment">
+ *       <sequence>
+ *         <element name="TapChanger" type="{http://www.iec.ch/61850/2003/SCL}tTapChanger" minOccurs="0"/>
+ *         <element name="NeutralPoint" type="{http://www.iec.ch/61850/2003/SCL}tTerminal" minOccurs="0"/>
+ *         <element name="EqFunction" type="{http://www.iec.ch/61850/2003/SCL}tEqFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="type" use="required" type="{http://www.iec.ch/61850/2003/SCL}tTransformerWindingEnum" fixed="PTW" />
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tTransformerWinding", propOrder = { + "tapChanger", + "neutralPoint", + "eqFunction" +}) +public class TTransformerWinding + extends TAbstractConductingEquipment +{ + + @XmlElement(name = "TapChanger") + protected TTapChanger tapChanger; + @XmlElement(name = "NeutralPoint") + protected TTerminal neutralPoint; + @XmlElement(name = "EqFunction") + protected List eqFunction; + @XmlAttribute(name = "type", required = true) + protected TTransformerWindingEnum type; + + /** + * 获取tapChanger属性的值。 + * + * @return + * possible object is + * {@link TTapChanger } + * + */ + public TTapChanger getTapChanger() { + return tapChanger; + } + + /** + * 设置tapChanger属性的值。 + * + * @param value + * allowed object is + * {@link TTapChanger } + * + */ + public void setTapChanger(TTapChanger value) { + this.tapChanger = value; + } + + /** + * 获取neutralPoint属性的值。 + * + * @return + * possible object is + * {@link TTerminal } + * + */ + public TTerminal getNeutralPoint() { + return neutralPoint; + } + + /** + * 设置neutralPoint属性的值。 + * + * @param value + * allowed object is + * {@link TTerminal } + * + */ + public void setNeutralPoint(TTerminal value) { + this.neutralPoint = value; + } + + /** + * Gets the value of the eqFunction property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the eqFunction property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEqFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEqFunction } + * + * + */ + public List getEqFunction() { + if (eqFunction == null) { + eqFunction = new ArrayList(); + } + return this.eqFunction; + } + + /** + * 获取type属性的值。 + * + * @return + * possible object is + * {@link TTransformerWindingEnum } + * + */ + public TTransformerWindingEnum getType() { + if (type == null) { + return TTransformerWindingEnum.PTW; + } else { + return type; + } + } + + /** + * 设置type属性的值。 + * + * @param value + * allowed object is + * {@link TTransformerWindingEnum } + * + */ + public void setType(TTransformerWindingEnum value) { + this.type = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTransformerWindingEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTransformerWindingEnum.java new file mode 100644 index 0000000..f6df6ad --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTransformerWindingEnum.java @@ -0,0 +1,43 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tTransformerWindingEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tTransformerWindingEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="PTW"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tTransformerWindingEnum") +@XmlEnum +public enum TTransformerWindingEnum { + + PTW; + + public String value() { + return name(); + } + + public static TTransformerWindingEnum fromValue(String v) { + return valueOf(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTrgOps.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTrgOps.java new file mode 100644 index 0000000..fe4ed0e --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TTrgOps.java @@ -0,0 +1,193 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tTrgOps complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tTrgOps">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="dchg" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="qchg" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="dupd" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="period" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *       <attribute name="gi" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tTrgOps") +public class TTrgOps { + + @XmlAttribute(name = "dchg") + protected Boolean dchg; + @XmlAttribute(name = "qchg") + protected Boolean qchg; + @XmlAttribute(name = "dupd") + protected Boolean dupd; + @XmlAttribute(name = "period") + protected Boolean period; + @XmlAttribute(name = "gi") + protected Boolean gi; + + /** + * 获取dchg属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDchg() { + if (dchg == null) { + return false; + } else { + return dchg; + } + } + + /** + * 设置dchg属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDchg(Boolean value) { + this.dchg = value; + } + + /** + * 获取qchg属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isQchg() { + if (qchg == null) { + return false; + } else { + return qchg; + } + } + + /** + * 设置qchg属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setQchg(Boolean value) { + this.qchg = value; + } + + /** + * 获取dupd属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isDupd() { + if (dupd == null) { + return false; + } else { + return dupd; + } + } + + /** + * 设置dupd属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setDupd(Boolean value) { + this.dupd = value; + } + + /** + * 获取period属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isPeriod() { + if (period == null) { + return false; + } else { + return period; + } + } + + /** + * 设置period属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setPeriod(Boolean value) { + this.period = value; + } + + /** + * 获取gi属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isGi() { + if (gi == null) { + return true; + } else { + return gi; + } + } + + /** + * 设置gi属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setGi(Boolean value) { + this.gi = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TUnNaming.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TUnNaming.java new file mode 100644 index 0000000..0874ca8 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TUnNaming.java @@ -0,0 +1,107 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tUnNaming complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tUnNaming">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tBaseElement">
+ *       <attGroup ref="{http://www.iec.ch/61850/2003/SCL}agDesc"/>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tUnNaming") +@XmlSeeAlso({ + TDataSet.class, + TDOI.class, + TInputs.class, + TOutputs.class, + TLog.class, + TLabels.class, + TSettingControl.class, + TIED.class, + TCommunication.class, + TLNode.class, + TTerminal.class, + TSclFileUUIDReference.class, + TAccessPoint.class, + TServerAt.class, + TServer.class, + TLDevice.class, + TRptEnabled.class, + TControl.class, + TSDI.class, + TDAI.class, + TConnectedAP.class, + TControlBlock.class, + TPhysConn.class, + TDO.class, + TSDO.class, + TAbstractDataAttribute.class, + TAnyLN.class +}) +public abstract class TUnNaming + extends TBaseElement +{ + + @XmlAttribute(name = "desc") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String desc; + + /** + * 获取desc属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesc() { + if (desc == null) { + return ""; + } else { + return desc; + } + } + + /** + * 设置desc属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesc(String value) { + this.desc = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVal.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVal.java new file mode 100644 index 0000000..9404937 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVal.java @@ -0,0 +1,100 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tVal complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tVal">
+ *   <simpleContent>
+ *     <extension base="<http://www.w3.org/2001/XMLSchema>normalizedString">
+ *       <attribute name="sGroup" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tVal", propOrder = { + "value" +}) +public class TVal { + + @XmlValue + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + @XmlSchemaType(name = "normalizedString") + protected String value; + @XmlAttribute(name = "sGroup") + @XmlSchemaType(name = "unsignedInt") + protected Long sGroup; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * 获取sGroup属性的值。 + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getSGroup() { + return sGroup; + } + + /** + * 设置sGroup属性的值。 + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setSGroup(Long value) { + this.sGroup = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValKindEnum.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValKindEnum.java new file mode 100644 index 0000000..8ab2e84 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValKindEnum.java @@ -0,0 +1,63 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tValKindEnum的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + *

+ *

+ * <simpleType name="tValKindEnum">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}Name">
+ *     <enumeration value="Spec"/>
+ *     <enumeration value="Conf"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="Set"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "tValKindEnum") +@XmlEnum +public enum TValKindEnum { + + @XmlEnumValue("Spec") + SPEC("Spec"), + @XmlEnumValue("Conf") + CONF("Conf"), + RO("RO"), + @XmlEnumValue("Set") + SET("Set"); + private final String value; + + TValKindEnum(String v) { + value = v; + } + + public String value() { + return value; + } + + public static TValKindEnum fromValue(String v) { + for (TValKindEnum c: TValKindEnum.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValueHandling.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValueHandling.java new file mode 100644 index 0000000..4c54cff --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValueHandling.java @@ -0,0 +1,69 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tValueHandling complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tValueHandling">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <attribute name="setToRO" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tValueHandling") +public class TValueHandling { + + @XmlAttribute(name = "setToRO") + protected Boolean setToRO; + + /** + * 获取setToRO属性的值。 + * + * @return + * possible object is + * {@link Boolean } + * + */ + public boolean isSetToRO() { + if (setToRO == null) { + return false; + } else { + return setToRO; + } + } + + /** + * 设置setToRO属性的值。 + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSetToRO(Boolean value) { + this.setToRO = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValueWithUnit.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValueWithUnit.java new file mode 100644 index 0000000..920769c --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TValueWithUnit.java @@ -0,0 +1,138 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlSchemaType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.NormalizedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

tValueWithUnit complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tValueWithUnit">
+ *   <simpleContent>
+ *     <extension base="<http://www.w3.org/2001/XMLSchema>decimal">
+ *       <attribute name="unit" use="required" type="{http://www.w3.org/2001/XMLSchema}token" />
+ *       <attribute name="multiplier" type="{http://www.iec.ch/61850/2003/SCL}tUnitMultiplierEnum" default="" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tValueWithUnit", propOrder = { + "value" +}) +@XmlSeeAlso({ + TVoltage.class, + TDurationInSec.class +}) +public class TValueWithUnit { + + @XmlValue + protected BigDecimal value; + @XmlAttribute(name = "unit", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String unit; + @XmlAttribute(name = "multiplier") + @XmlJavaTypeAdapter(NormalizedStringAdapter.class) + protected String multiplier; + + /** + * 获取value属性的值。 + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getValue() { + return value; + } + + /** + * 设置value属性的值。 + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setValue(BigDecimal value) { + this.value = value; + } + + /** + * 获取unit属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getUnit() { + return unit; + } + + /** + * 设置unit属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUnit(String value) { + this.unit = value; + } + + /** + * 获取multiplier属性的值。 + * + * @return + * possible object is + * {@link String } + * + */ + public String getMultiplier() { + if (multiplier == null) { + return ""; + } else { + return multiplier; + } + } + + /** + * 设置multiplier属性的值。 + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setMultiplier(String value) { + this.multiplier = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVoltage.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVoltage.java new file mode 100644 index 0000000..c41c9c7 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVoltage.java @@ -0,0 +1,41 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tVoltage complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tVoltage">
+ *   <simpleContent>
+ *     <restriction base="<http://www.iec.ch/61850/2003/SCL>tValueWithUnit">
+ *       <attribute name="unit" use="required" type="{http://www.w3.org/2001/XMLSchema}token" fixed="V" />
+ *       <attribute name="multiplier" type="{http://www.iec.ch/61850/2003/SCL}tUnitMultiplierEnum" default="" />
+ *     </restriction>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tVoltage") +public class TVoltage + extends TValueWithUnit +{ + + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVoltageLevel.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVoltageLevel.java new file mode 100644 index 0000000..dcd4be8 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/TVoltageLevel.java @@ -0,0 +1,208 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + + +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

tVoltageLevel complex type的 Java 类。 + * + *

以下模式片段指定包含在此类中的预期内容。 + * + *

+ * <complexType name="tVoltageLevel">
+ *   <complexContent>
+ *     <extension base="{http://www.iec.ch/61850/2003/SCL}tEquipmentContainer">
+ *       <sequence>
+ *         <element name="Voltage" type="{http://www.iec.ch/61850/2003/SCL}tVoltage" minOccurs="0"/>
+ *         <element name="Bay" type="{http://www.iec.ch/61850/2003/SCL}tBay" maxOccurs="unbounded"/>
+ *         <element name="Function" type="{http://www.iec.ch/61850/2003/SCL}tFunction" maxOccurs="unbounded" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="nomFreq">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}decimal">
+ *             <minInclusive value="0"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="numPhases">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}unsignedByte">
+ *             <minExclusive value="0"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <anyAttribute processContents='lax' namespace='##other'/>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tVoltageLevel", propOrder = { + "voltage", + "bay", + "function" +}) +public class TVoltageLevel + extends TEquipmentContainer +{ + + @XmlElement(name = "Voltage") + protected TVoltage voltage; + @XmlElement(name = "Bay", required = true) + protected List bay; + @XmlElement(name = "Function") + protected List function; + @XmlAttribute(name = "nomFreq") + protected BigDecimal nomFreq; + @XmlAttribute(name = "numPhases") + protected Short numPhases; + + /** + * 获取voltage属性的值。 + * + * @return + * possible object is + * {@link TVoltage } + * + */ + public TVoltage getVoltage() { + return voltage; + } + + /** + * 设置voltage属性的值。 + * + * @param value + * allowed object is + * {@link TVoltage } + * + */ + public void setVoltage(TVoltage value) { + this.voltage = value; + } + + /** + * Gets the value of the bay property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the bay property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getBay().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TBay } + * + * + */ + public List getBay() { + if (bay == null) { + bay = new ArrayList(); + } + return this.bay; + } + + /** + * Gets the value of the function property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the function property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getFunction().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TFunction } + * + * + */ + public List getFunction() { + if (function == null) { + function = new ArrayList(); + } + return this.function; + } + + /** + * 获取nomFreq属性的值。 + * + * @return + * possible object is + * {@link BigDecimal } + * + */ + public BigDecimal getNomFreq() { + return nomFreq; + } + + /** + * 设置nomFreq属性的值。 + * + * @param value + * allowed object is + * {@link BigDecimal } + * + */ + public void setNomFreq(BigDecimal value) { + this.nomFreq = value; + } + + /** + * 获取numPhases属性的值。 + * + * @return + * possible object is + * {@link Short } + * + */ + public Short getNumPhases() { + return numPhases; + } + + /** + * 设置numPhases属性的值。 + * + * @param value + * allowed object is + * {@link Short } + * + */ + public void setNumPhases(Short value) { + this.numPhases = value; + } + +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/package-info.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/package-info.java new file mode 100644 index 0000000..15db0be --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/parser/generated/package-info.java @@ -0,0 +1,9 @@ +// +// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的 +// 请访问 https://javaee.github.io/jaxb-v2/ +// 在重新编译源模式时, 对此文件的所有修改都将丢失。 +// 生成时间: 2026.03.02 时间 03:10:34 PM CST +// + +@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.iec.ch/61850/2003/SCL", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) +package com.njcn.gather.icd.mapping.infrastructure.parser.generated; diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/serializer/MappingDocumentSerializer.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/serializer/MappingDocumentSerializer.java new file mode 100644 index 0000000..7ce88bc --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/serializer/MappingDocumentSerializer.java @@ -0,0 +1,42 @@ +package com.njcn.gather.icd.mapping.infrastructure.serializer; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.njcn.gather.icd.mapping.domain.model.mapping.MappingDocument; +import org.springframework.stereotype.Component; + +/** + * 映射文档序列化器。 + */ +@Component +public class MappingDocumentSerializer { + + private final ObjectMapper compactMapper; + private final ObjectMapper prettyMapper; + + public MappingDocumentSerializer() { + compactMapper = new ObjectMapper(); + compactMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + prettyMapper = new ObjectMapper(); + prettyMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + prettyMapper.enable(SerializationFeature.INDENT_OUTPUT); + } + + public String toCompactJson(MappingDocument document) { + try { + return compactMapper.writeValueAsString(document); + } catch (Exception ex) { + throw new IllegalArgumentException("映射文档序列化失败:" + ex.getMessage(), ex); + } + } + + public String toPrettyJson(MappingDocument document) { + try { + return prettyMapper.writeValueAsString(document); + } catch (Exception ex) { + throw new IllegalArgumentException("映射文档序列化失败:" + ex.getMessage(), ex); + } + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/storage/FileStorageService.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/storage/FileStorageService.java new file mode 100644 index 0000000..d76b74a --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/infrastructure/storage/FileStorageService.java @@ -0,0 +1,32 @@ +package com.njcn.gather.icd.mapping.infrastructure.storage; + +import org.springframework.stereotype.Component; + +import java.io.File; +import java.io.FileOutputStream; +import java.nio.charset.StandardCharsets; + +/** + * 文件存储服务。负责把最终映射 JSON 保存到指定目录。 + */ +@Component +public class FileStorageService { + public String save(String fileName, String content, String outputDir) { + try { + File dir = outputDir == null || outputDir.trim().isEmpty() ? new File(".") : new File(outputDir); + if (!dir.exists() && !dir.mkdirs()) { + throw new IllegalStateException("输出目录创建失败:" + dir.getAbsolutePath()); + } + if (!dir.isDirectory()) { + throw new IllegalStateException("输出路径不是目录:" + dir.getAbsolutePath()); + } + File target = new File(dir, fileName); + try (FileOutputStream fos = new FileOutputStream(target)) { + fos.write(content.getBytes(StandardCharsets.UTF_8)); + } + return target.getAbsolutePath(); + } catch (Exception ex) { + throw new IllegalArgumentException("映射文件保存失败:" + ex.getMessage(), ex); + } + } +} diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/utils/DateUtils.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/utils/DateUtils.java new file mode 100644 index 0000000..4603533 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/utils/DateUtils.java @@ -0,0 +1,17 @@ +package com.njcn.gather.icd.mapping.utils; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 日期工具。 + */ +public final class DateUtils { + + private DateUtils() { + } + + public static String nowText() { + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/utils/JsonUtils.java b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/utils/JsonUtils.java new file mode 100644 index 0000000..becb695 --- /dev/null +++ b/tools/mms-mapping/src/main/java/com/njcn/gather/icd/mapping/utils/JsonUtils.java @@ -0,0 +1,22 @@ +package com.njcn.gather.icd.mapping.utils; + +/** + * JSON 文本处理工具。 + * + * 作用: + * 1. 兼容老配置文件中常见的尾逗号问题。 + * 2. 降低 DefaultCfg.txt 因历史书写习惯造成的解析失败概率。 + */ +public final class JsonUtils { + + private JsonUtils() { + } + + public static String sanitizeJson(String text) { + if (text == null) { + return null; + } + // 去掉对象或数组结束前的尾逗号。 + return text.replaceAll(",\\s*([}\\]])", "$1"); + } +} \ No newline at end of file diff --git a/tools/mms-mapping/src/main/resources/template/DefaultCfg.txt b/tools/mms-mapping/src/main/resources/template/DefaultCfg.txt new file mode 100644 index 0000000..eeb7d64 --- /dev/null +++ b/tools/mms-mapping/src/main/resources/template/DefaultCfg.txt @@ -0,0 +1,756 @@ +{ + "ReportList": [ + { + "desc": "统计数据", + "inst": "01", + "TrgOps": "96", + "Select": "DataStatFileMap", + "DataSetList": [ + "dsStatisticData", + "dsStHarm", + "dsStIHarm", + "dsStMMXU", + "dsStMSQI", + ], + "LnInstList": [ + "最大值", + "最小值", + "平均值", + "95值", + "方均根值", + "间谐波最大值", + "间谐波最小值", + "间谐波平均值", + "间谐波95值", + "间谐波方均根值" + ] + }, + { + "desc": "波动闪变", + "inst": "01", + "TrgOps": "96", + "Select": "FlickerFileMap", + "DataSetList": [ + "dsFlickerData", + "dsPST" + ], + "LnInstList": [ + "波动闪变值" + ] + }, + { + "desc": "实时数据", + "inst": "01", + "TrgOps": "40", + "Select": "DataRealFileMap", + "DataSetList": [ + "dsRealTimeData", + "dsRtHarm", + "dsRtIHarm", + "dsRtMMXU", + "dsRtMSQI", + "dsRtFre" + ], + "LnInstList": [ + "实时数据", + "间谐波实时数据" + ] + }, + { + "desc": "暂态事件", + "inst": "01", + "TrgOps": "96", + "Select": "QVVR", + "DataSetList": [ + "dsEveQVVR" + ], + "LnInstList": [ + "电压变动A", + "电压变动B", + "电压变动C" + ] + }, + { + "desc": "录波状态", + "inst": "01", + "TrgOps": "96", + "Select": "RDRE", + "DataSetList": [ + "dsEveRDRE" + ], + "LnInstList": [ + "录波文件" + ] + } + ], + "LnClassList": [ + { + "desc": "基本数据", + "nameList": [ + "MMXU" + ] + }, + { + "desc": "序分量值", + "nameList": [ + "MSQI" + ] + }, + { + "desc": "谐波/间谐波数据", + "nameList": [ + "MHAI" + ] + }, + { + "desc": "波动闪变", + "nameList": [ + "MFLK" + ] + }, + { + "desc": "电压变动", + "nameList": [ + "QVVR" + ] + } + ], + "PhaseList": [ + { + "desc": "无相别", + "nameList": [ + "null" + ] + }, + { + "desc": "正序", + "nameList": [ + "c1" + ] + }, + { + "desc": "负序", + "nameList": [ + "c2" + ] + }, + { + "desc": "零序", + "nameList": [ + "c3" + ] + }, + { + "desc": "A相", + "nameList": [ + "phsA", + "phsAHar" + ] + }, + { + "desc": "B相", + "nameList": [ + "phsB", + "phsBHar" + ] + }, + { + "desc": "C相", + "nameList": [ + "phsC", + "phsCHar" + ] + }, + { + "desc": "AB线", + "nameList": [ + "phsAB", + "phsABHar" + ] + }, + { + "desc": "BC线", + "nameList": [ + "phsBC", + "phsBCHar" + ] + }, + { + "desc": "CA线", + "nameList": [ + "phsCA", + "phsCAHar" + ] + } + ], + "MultiplierList": [ + { + "multiplier": 1, + "nameList": [ + "null" + ] + }, + { + "multiplier": 1000, + "nameList": [ + "k" + ] + } + ], + "UnitList": [ + { + "desc": "other", + "nameList": [ + "null" + ] + }, + { + "desc": "v", + "nameList": [ + "V" + ] + }, + { + "desc": "a", + "nameList": [ + "A" + ] + }, + { + "desc": "w", + "nameList": [ + "W", + "VAr", + "VA" + ] + } + ], + "TypeList": [ + { + "desc": "值", + "nameList": [ + "mag" + ] + }, + { + "desc": "角度", + "nameList": [ + "ang" + ] + } + ], + "DataObjectsList": [ + { + "desc": "非间谐波数据", + "LnInstList": [ + "最大值", + "最小值", + "平均值", + "95值", + "实时数据" + ], + "ObjectList": [ + { + "desc": "频率", + "nameList": [ + "Hz" + ] + }, + { + "desc": "线电压总有效值", + "nameList": [ + "PPV" + ] + }, + { + "desc": "相电压总有效值", + "nameList": [ + "PhV" + ] + }, + { + "desc": "电流总有效值", + "nameList": [ + "A" + ] + }, + { + "desc": "有功功率", + "nameList": [ + "W" + ] + }, + { + "desc": "无功功率", + "nameList": [ + "VAr" + ] + }, + { + "desc": "视在功率", + "nameList": [ + "VA" + ] + }, + { + "desc": "功率因数", + "nameList": [ + "PF" + ] + }, + { + "desc": "位移功率因数", + "nameList": [ + "DF" + ] + }, + { + "desc": "三相总有功功率", + "nameList": [ + "TotW" + ] + }, + { + "desc": "三相总无功功率", + "nameList": [ + "TotVAr" + ] + }, + { + "desc": "三相总视在功率", + "nameList": [ + "TotVA" + ] + }, + { + "desc": "三相功率因数", + "nameList": [ + "TotPF" + ] + }, + { + "desc": "三相位移功率因数", + "nameList": [ + "TotDF" + ] + }, + { + "desc": "频率偏差", + "nameList": [ + "HzDev" + ] + }, + { + "desc": "相电压偏差", + "nameList": [ + "PhVDev" + ] + }, + { + "desc": "线电压偏差", + "nameList": [ + "PPVDev" + ] + }, + { + "desc": "正序负序和零序电压", + "nameList": [ + "SeqV" + ] + }, + { + "desc": "正序负序和零序电流", + "nameList": [ + "SeqA" + ] + }, + { + "desc": "电压负序不平衡度", + "nameList": [ + "ImbNgV" + ] + }, + { + "desc": "电流负序不平衡度", + "nameList": [ + "ImbNgA" + ] + }, + { + "desc": "电压零序不平衡度", + "nameList": [ + "ImbZroV" + ] + }, + { + "desc": "电流零序不平衡度", + "nameList": [ + "ImbZroA" + ] + }, + { + "desc": "相电压谐波总畸变率", + "nameList": [ + "ThdPhV" + ] + }, + { + "desc": "相电压总偶次谐波畸变率", + "nameList": [ + "ThdEvnPhV" + ] + }, + { + "desc": "相电压总奇次谐波畸变率", + "nameList": [ + "ThdOddPhV" + ] + }, + { + "desc": "线电压谐波总畸变率", + "nameList": [ + "ThdPPV" + ] + }, + { + "desc": "线电压总偶次谐波畸变率", + "nameList": [ + "ThdEvnPPV" + ] + }, + { + "desc": "线电压总奇次谐波畸变率", + "nameList": [ + "ThdOddPPV" + ] + }, + { + "desc": "相电压谐波含有率序列", + "baseflag": 1, + "basecount": 49, + "nameList": [ + "HRPhV", + "HPhVMag" + ] + }, + { + "desc": "线电压谐波含有率序列", + "baseflag": 1, + "basecount": 49, + "nameList": [ + "HRPPV" + ] + }, + { + "desc": "电流总谐波畸变率", + "nameList": [ + "ThdA" + ] + }, + { + "desc": "电流总偶次谐波畸变率", + "nameList": [ + "ThdEvnA" + ] + }, + { + "desc": "电流总奇次谐波畸变率", + "nameList": [ + "ThdOddA" + ] + }, + { + "desc": "谐波电流有效值序列", + "baseflag": 1, + "basecount": 49, + "nameList": [ + "HA", + "HAMag" + ] + }, + { + "desc": "谐波电压有效值序列", + "baseflag": 1, + "basecount": 49, + "nameList": [ + "HPhV" + ] + }, + { + "desc": "2~50次谐波有功功率序列", + "baseflag": 1, + "basecount": 49, + "nameList": [ + "HW" + ] + }, + { + "desc": "2~50次谐波无功功率序列", + "baseflag": 1, + "basecount": 49, + "nameList": [ + "HVAr" + ] + }, + { + "desc": "2~50次谐波视在功率序列", + "baseflag": 1, + "basecount": 49, + "nameList": [ + "HVA" + ] + }, + { + "desc": "三相总谐波视在功率", + "nameList": [ + "TotHVA" + ] + }, + { + "desc": "三相总谐波无功功率", + "nameList": [ + "TotHVAr" + ] + }, + { + "desc": "三相总谐波有功功率", + "nameList": [ + "TotHW" + ] + }, + { + "desc": "相电压基波有效值", + "baseflag": 2, + "queuecount": 49, + "nameList": [ + "HFundPhV", + "FundPhV" + ], + "queueList":[ + "HPhV" + ] + }, + { + "desc": "线电压基波有效值", + "baseflag": 2, + "queuecount": 49, + "nameList": [ + "HFundPPV" + ], + "queueList":[ + "HPPV" + ] + }, + { + "desc": "电流基波有效值", + "baseflag": 2, + "queuecount": 49, + "nameList": [ + + ], + "queueList":[ + "HA" + ] + }, + { + "desc": "基波有功功率", + "baseflag": 2, + "queuecount": 49, + "nameList": [ + + ], + "queueList":[ + "HW" + ] + }, + { + "desc": "基波无功功率", + "baseflag": 2, + "queuecount": 49, + "nameList": [ + + ], + "queueList":[ + "HVAr" + ] + }, + { + "desc": "基波视在功率", + "baseflag": 2, + "queuecount": 49, + "nameList": [ + + ], + "queueList":[ + "HVA" + ] + } + ] + }, + { + "desc": "间谐波数据", + "LnInstList": [ + "间谐波最大值", + "间谐波最小值", + "间谐波平均值", + "间谐波95值", + "间谐波实时数据" + ], + "ObjectList": [ + { + "desc": "相电压间谐波含有率序列", + "baseflag": 1, + "basecount": 50, + "nameList": [ + "HPhV" + ] + }, + { + "desc": "线电压间谐波含有率序列", + "baseflag": 1, + "basecount": 50, + "nameList": [ + "HRPPV" + ] + }, + { + "desc": "间谐波电流有效值序列", + "baseflag": 1, + "basecount": 50, + "nameList": [ + "HA" + ] + }, + { + "desc": "间谐波电压有效值序列", + "baseflag": 1, + "basecount": 50, + "nameList": [ + "HRPhV" + ] + } + ] + }, + { + "desc": "电压变动", + "LnInstList": [ + "电压变动A", + "电压变动B", + "电压变动C", + ], + "ObjectList": [ + { + "desc": "电压扰动事件启动", + "nameList": [ + "VarStr" + ] + }, + { + "desc": "电压暂降事件启动", + "nameList": [ + "DipStr" + ] + }, + { + "desc": "电压暂升事件启动", + "nameList": [ + "SwlStr" + ] + }, + { + "desc": "电压中断事件启动", + "nameList": [ + "IntrStr" + ] + }, + { + "desc": "电压扰动事件特征幅值", + "nameList": [ + "VVa" + ] + }, + { + "desc": "电压扰动事件持续时间", + "nameList": [ + "VVaTm" + ] + }, + { + "desc": "电压暂降启动定值", + "nameList": [ + "DipStrVal" + ] + }, + { + "desc": "电压暂升启动定值", + "nameList": [ + "SwlStrVal" + ] + }, + { + "desc": "电压中断启动定值", + "nameList": [ + "IntrStrVal" + ] + } + ] + }, + { + "desc": "其余数据", + "LnInstList": [ + "波动闪变值", + "录波文件" + ], + "ObjectList": [ + { + "desc": "线电压短时闪变值", + "nameList": [ + "PPPst" + ] + }, + { + "desc": "相电压短时闪变值", + "nameList": [ + "PhPst" + ] + }, + { + "desc": "线电压长时闪变值", + "nameList": [ + "PPPlt" + ] + }, + { + "desc": "相电压长时闪变值", + "nameList": [ + "PhPlt" + ] + }, + { + "desc": "线电压电压变动幅值", + "nameList": [ + "PPFluc" + ] + }, + { + "desc": "相电压电压变动幅值", + "nameList": [ + "PhFluc" + ] + }, + { + "desc": "线电压电压变动频度", + "nameList": [ + "PPFlucf" + ] + }, + { + "desc": "相电压电压变动频度", + "nameList": [ + "PhFlucf" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/tools/pom.xml b/tools/pom.xml index c6245c9..4d7439d 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -19,6 +19,7 @@ activate-tool + mms-mapping wave-tool diff --git a/tools/wave-tool/PARSE_COMTRADE_API.md b/tools/wave-tool/PARSE_COMTRADE_API.md deleted file mode 100644 index 920b321..0000000 --- a/tools/wave-tool/PARSE_COMTRADE_API.md +++ /dev/null @@ -1,266 +0,0 @@ -# parseComtrade API 文档 - -## 1. 接口概述 - -- 接口名称:解析 COMTRADE 波形文件 -- Controller:[WaveController.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/controller/WaveController.java) -- 方法:`parseComtrade` -- 请求路径:`POST /wave/parseComtrade` -- Content-Type:`multipart/form-data` -- 返回类型:`HttpResult` - -用途说明: - -- 上传一组 COMTRADE `cfg/dat` 文件 -- 解析原始波形数据 -- 按请求决定是否补充 RMS 数据、前端查看明细和特征值结果 - -## 2. 请求参数 - -### 2.1 文件参数 - -| 参数名 | 类型 | 必填 | 说明 | -| --- | --- | --- | --- | -| `cfgFile` | file | 是 | COMTRADE 配置文件 `.cfg` | -| `datFile` | file | 是 | COMTRADE 数据文件 `.dat` | - -### 2.2 表单参数 - -参数定义来源:[WaveComtradeParseParam.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/param/WaveComtradeParseParam.java) - -| 参数名 | 类型 | 必填 | 默认值 | 说明 | -| --- | --- | --- | --- | --- | -| `parseType` | integer | 否 | `1` | 解析类型:`0` 高级算法采样率 32-128,`1` 普通展示,`2` App 抽点,`3` 原始波形 | -| `ptType` | integer | 否 | `0` | PT 接线方式:`0` 星形,`1` 三角,`2` 开口三角 | -| `pt` | number | 否 | `1` | PT 变比 | -| `ct` | number | 否 | `1` | CT 变比 | -| `monitorName` | string | 否 | `未命名测点` | 测点名称 | -| `calculateRms` | boolean | 否 | `true` | 是否计算 RMS | -| `buildDetails` | boolean | 否 | `true` | 是否构建前端查看明细 | -| `calculateEigenvalue` | boolean | 否 | `false` | 是否计算特征值 | -| `dynamicThreshold` | boolean | 否 | `true` | 特征值是否使用浮动门槛 | - -## 3. 请求示例 - -```bash -curl -X POST "http://localhost:8080/wave/parseComtrade" \ - -F "cfgFile=@D:/00-B7-8D-00-E4-09/1_20260321_201458_748.CFG" \ - -F "datFile=@D:/00-B7-8D-00-E4-09/1_20260321_201458_748.DAT" \ - -F "parseType=1" \ - -F "ptType=0" \ - -F "pt=1" \ - -F "ct=1" \ - -F "monitorName=监测点1" \ - -F "calculateRms=true" \ - -F "buildDetails=true" \ - -F "calculateEigenvalue=true" \ - -F "dynamicThreshold=true" -``` - -## 4. 响应结构 - -### 4.1 外层响应 - -Controller 返回的是 `HttpResult`。当前仓库内未展开 `HttpResult` 类型源码,本接口文档只对业务 `data` 部分做精确定义。 - -业务数据类型来源:[WaveComtradeResultVO.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/vo/WaveComtradeResultVO.java) - -### 4.2 data 字段定义 - -| 字段名 | 类型 | 说明 | -| --- | --- | --- | -| `waveData` | object | 波形基础数据 | -| `waveDataDetails` | array | 前端查看明细,`buildDetails=true` 时返回 | -| `eigenvalues` | array | 特征值结果,`calculateEigenvalue=true` 时返回 | - -## 5. 业务对象说明 - -### 5.1 waveData - -定义来源:[WaveDataDTO.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/dto/WaveDataDTO.java) - -| 字段名 | 类型 | 说明 | -| --- | --- | --- | -| `comtradeCfgDTO` | object | CFG 解析结果 | -| `waveTitle` | array | 波形标题,例如 `["Time","UA相","UB相"]` | -| `channelNames` | array | 通道名称列表 | -| `listWaveData` | array> | 原始波形数据,首列为时间,后续列为相电压/电流值 | -| `listRmsData` | array> | RMS 波形数据,`calculateRms=true` 时可用 | -| `listRmsMinData` | array> | RMS 最小值摘要 | -| `iPhasic` | integer | 相别数量 | -| `ptType` | integer | PT 接线方式 | -| `pt` | number | PT 变比 | -| `ct` | number | CT 变比 | -| `time` | string | 事件发生时刻 | -| `monitorName` | string | 测点名称 | - -### 5.2 comtradeCfgDTO - -定义来源:[ComtradeCfgDTO.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/dto/ComtradeCfgDTO.java) - -| 字段名 | 类型 | 说明 | -| --- | --- | --- | -| `nChannelNum` | integer | 通道总数 | -| `nPhasic` | integer | 相别数量 | -| `nAnalogNum` | integer | 模拟量通道数 | -| `nDigitalNum` | integer | 开关量通道数 | -| `timeStart` | string/date | 录波开始时间 | -| `timeTrige` | string/date | 触发时间 | -| `lstAnalogDTO` | array | 模拟量通道配置 | -| `lstDigitalDTO` | array | 开关量通道配置 | -| `nRates` | integer | 采样率分段数 | -| `lstRate` | array | 采样率分段配置 | -| `firstTime` | string/date | 首个触发时间对象 | -| `firstMs` | integer | 首个触发毫秒值 | -| `nPush` | integer | 触发前推点数 | -| `finalSampleRate` | integer | 最终采样率 | -| `nAllWaveNum` | integer | 总周波数 | -| `strBinType` | string | 文件编码类型,例如 `BINARY` | - -### 5.3 waveDataDetails - -定义来源:[WaveDataDetail.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/bo/WaveDataDetail.java) - -| 字段名 | 类型 | 说明 | -| --- | --- | --- | -| `instantData` | object | 瞬时波形数据 | -| `rmsData` | object | RMS 波形数据 | -| `a` | string | A 相名称 | -| `b` | string | B 相名称 | -| `c` | string | C 相名称 | -| `channelName` | string | 通道名称 | -| `unit` | string | 单位 | -| `isOpen` | boolean | 是否开口三角模式 | -| `title` | string | 当前图标题 | -| `colors` | array | 曲线颜色 | - -其中 `instantData` 和 `rmsData` 结构一致,定义分别来自: - -- [InstantData.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/bo/InstantData.java) -- [RmsData.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/bo/RmsData.java) - -公共字段: - -| 字段名 | 类型 | 说明 | -| --- | --- | --- | -| `max` | number | 当前曲线最大值 | -| `min` | number | 当前曲线最小值 | -| `aValue` | array> | A 相点位 | -| `bValue` | array> | B 相点位 | -| `cValue` | array> | C 相点位 | - -### 5.4 eigenvalues - -定义来源:[EigenvalueDTO.java](D:/Work/SourceCode/CN_Tool/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/pojo/dto/EigenvalueDTO.java) - -| 字段名 | 类型 | 说明 | -| --- | --- | --- | -| `amplitude` | number | 特征幅值百分比 | -| `residualVoltage` | number | 残余电压 | -| `ratedVoltage` | number | 额定电压 | -| `durationTime` | number | 持续时间 | - -## 6. 成功响应示例 - -以下示例基于真实样本文件联测结果整理,长数组做了截断展示。 - -```json -{ - "code": "SUCCESS", - "message": "成功", - "data": { - "waveData": { - "comtradeCfgDTO": { - "nChannelNum": 6, - "nPhasic": 3, - "nAnalogNum": 6, - "nDigitalNum": 0, - "timeStart": "2026-03-21 20:14:58.648", - "timeTrige": "2026-03-21 20:14:58.748", - "nRates": 1, - "firstMs": 748, - "nPush": 100, - "finalSampleRate": 512, - "nAllWaveNum": 30, - "strBinType": "BINARY" - }, - "waveTitle": ["Time", "UA相", "UB相", "UC相", "IA相", "IB相", "IC相"], - "channelNames": ["/", "U1", "U2", "U3", "I1", "I2", "I3"], - "listWaveData": { - "count": 15616, - "first": [-100.0, -146.56, -76.9, -76.9, -0.13, 0.01, -0.2], - "last": [509.96, 148.02, 69.73, 69.75, 0.16, 0.01, 0.15] - }, - "listRmsData": { - "count": 15616, - "first": [-100.0, 104.94, 104.22, 104.23, 0.27, 0.01, 0.28], - "last": [509.96, 105.6, 105.1, 105.12, 0.24, 0.01, 0.24] - }, - "listRmsMinData": [ - [40.74, 41.2], - [362.19, 0.01] - ], - "iPhasic": 3, - "ptType": 0, - "pt": 1.0, - "ct": 1.0, - "time": "2026-03-21 20:14:58.748", - "monitorName": "监测点1" - }, - "waveDataDetails": [ - { - "channelName": "U1", - "unit": "kV", - "a": "A相", - "b": "B相", - "c": "C相", - "isOpen": false - }, - { - "channelName": "I1", - "unit": "A", - "a": "A相", - "b": "B相", - "c": "C相", - "isOpen": false - } - ], - "eigenvalues": [ - { - "amplitude": 0.3926178, - "residualVoltage": 41.200005, - "ratedVoltage": 104.936676, - "durationTime": 48.632812 - }, - { - "amplitude": 0.4067544, - "residualVoltage": 42.390152, - "ratedVoltage": 104.21559, - "durationTime": 54.492188 - }, - { - "amplitude": 0.40674016, - "residualVoltage": 42.396355, - "ratedVoltage": 104.2345, - "durationTime": 54.492188 - } - ] - } -} -``` - -## 7. 失败场景 - -基于当前代码,常见失败场景包括: - -| 场景 | 说明 | -| --- | --- | -| `cfgFile` 或 `datFile` 未上传 | 返回业务异常,提示“cfg 或 dat 文件不能为空” | -| CFG 文件格式错误 | 返回 CFG 解析失败 | -| DAT 文件为空或格式错误 | 返回 DAT 解析失败 | -| COMTRADE 解析过程中出现异常 | 返回“COMTRADE 波形解析失败” | - -## 8. 备注 - -- 当前接口已经移除图片生成相关参数,不再支持 `generateInstantImage`、`generateRmsImage` 等旧字段。 -- 当前接口文档只覆盖 `parseComtrade`,其他波形文本解析接口请单独编写。 diff --git a/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/component/WaveVectorComponent.java b/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/component/WaveVectorComponent.java index 15e8396..86c2f01 100644 --- a/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/component/WaveVectorComponent.java +++ b/tools/wave-tool/src/main/java/com/njcn/gather/tool/wave/component/WaveVectorComponent.java @@ -297,7 +297,7 @@ public class WaveVectorComponent { private float resolveVectorRatio(WaveDataDTO waveDataDTO, int titleIndex) { if (waveDataDTO.getWaveTitle() != null && waveDataDTO.getWaveTitle().size() > titleIndex && StrUtil.startWithIgnoreCase(waveDataDTO.getWaveTitle().get(titleIndex), "U")) { - return waveDataDTO.getPt() == null ? 1F : waveDataDTO.getPt().floatValue() / 1000F; + return waveDataDTO.getPt() == null ? 1F : waveDataDTO.getPt().floatValue() ; } return waveDataDTO.getCt() == null ? 1F : waveDataDTO.getCt().floatValue(); }