开发清除传输内容处理器
本主题介绍如何扩展预设监管提交处理器类,以及如何使用监管部门特定的处理方法来改写清除传输内容方法。
解决方案
• 创建用于扩展预设监管提交处理器的自定义类。
• 创建用于注册自定义类的 xconf 条目。
解决方案元素
下一张表格介绍各种解决方案元素。
元素
|
类型
|
说明
|
cleanTransmissionContent(RegulatorySubmission regulatorySubmission)
|
API
|
用于在准备提交期间,清除监管提交对象的相应内容。
|
getRegulatoryContentCategoriesToClean(RegulatorySubmission regulatorySubmission)
|
API
|
用于提供需要移除的监管内容类别列表。
|
默认行为
在准备提交或重新提交期间,将删除进程中需要重新捕获的任何现有确认消息和监管内容。getRegulatoryContentCategoriesToClean 方法提供了需要移除的监管内容类别。监管内容类别包括“监管提交有效载荷”、“确认 1”、“确认 2”和“确认 3”。在监管提交中当前不存在的任何监管内容类别都会被视为已移除而无法提交。
默认实施主要用于演示和教学目的。但该实施确实代表了一种典型的最佳做法,可能适用于多种监管提交类型。实施者可根据需求创建与所提供的文档相匹配的提交特定处理器。
创建自定义类
要自定义清理处理,首先创建一个用于扩展 SimpleRegulatorySubmissionProcessor 的 Java 类 (您的处理器),或相应的可修订子类型处理器,然后改写 cleanTransmissionContent 方法。可修订子类型处理器可以是 AERSubmissionProcessor、ERSubmissionProcessor、RPSSubmissionProcessor 或 UDISubmissionProcessor。
以下示例显示了已改写的 cleanTransmissionContent 方法:
@Override
public RegulatorySubmission cleanTransmissionContent(RegulatorySubmission regulatorySubmission) throws Exception {
RegulatoryContentCategory[] regulatoryContentToDeleteBeforeTransmit = getRegulatoryContentCategoriesToClean(
regulatorySubmission);
for (RegulatoryContentCategory regulatoryContentCategory : regulatoryContentToDeleteBeforeTransmit) {
try {
regulatorySubmission = RegulatoryContentHelper.getService()
.deleteRegulatoryContent(regulatorySubmission, regulatoryContentCategory);
} catch (WTException e) {
if (!e.getExceptionIdentifier().contains(regmstrResource.NO_CONTENT_FOR_CATEGORY)) {
throw e;
}
}
}
regulatorySubmission = RegulatorySubmissionHelper.service
.deleteAcknowledgementMessages(regulatorySubmission);
return regulatorySubmission;
}