ExportFieldValue
要将
Codebeamer 字段值 (例如 Wiki 标记) 转换为相应的 JIRA 自定义字段值 (例如,
核对清单项数组),
@CustomField 扩展必须提供
@CustomField.ExportFieldValue 方法。
该方法必须返回已转换为相应 JIRA 自定义字段值的指定 Codebeamer 字段值。
该方法可以使用相应类型的参数来访问以下上下文信息:
• JiraImportController:用于接收当前 JIRA 导出的控制器。
• ProjectConfiguration 或 ProjectDto:用于接收 JIRA 导出的源项目。
• JiraTrackerSyncConfig:用于接收 JIRA 导出的源跟踪器。
• TrackerItemDto:用于接收自定义字段值所来自的源跟踪器项。
• TrackerLayoutLabelDto:用于接收值所来自的源字段。
• @CustomField.type:用于接收要导出的源字段值。
• JiraRestClient:用于接收要从中导入的远程 JIRA 实例的 REST API。
• ImporterSupport:用于接收当前导入器。
• TrackerItemFieldHandler:用于接收当前跟踪器项字段的处理器。
package com.intland.codebeamer.controller.jira;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.databind.node.JsonNode;
import com.intland.codebeamer.controller.jira.CustomField;
import com.intland.codebeamer.controller.jira.JiraImportController;
import com.intland.codebeamer.controller.jira.JiraTrackerSyncConfig;
import com.intland.codebeamer.persistence.dto.TrackerLayoutLabelDto;
import com.intland.codebeamer.wiki.plugins.ChecklistPlugin;
@Component("com.okapya.jira.checklist:checklist")
@CustomField(type="WikiText", of="Checklist")
public class ChecklistForJiraField {
/**
* Convert a {@link ChecklistPlugin} body into a
* <a href="https://okapya.atlassian.net/wiki/spaces/CHKDOC/pages/270172389/Modifying+Checklists+using+a+REST+API">Checklist for JIRA<a>
* @param tracker is the JIRA tracker sync configuration
* @param checklist is the {@link ChecklistPlugin} body
* @return the converted {@link ChecklistPlugin} body
*/
public JsonNode cb2jira(JiraTrackerSyncConfig tracker, JsonNode checklist) {
...
}
@CustomField.ExportFieldValue
public JsonNode exportChecklist(JiraTrackerSyncConfig tracker, String markup) {
return cb2jira(tracker, ChecklistPlugin.unwrap(markup));
}
}
在导入期间,
Checklists for Jira 扩展会使用
jira2cb() 将
核对清单项数组转换为
Checklist Plugin 项数组,并将核对清单项封装到
Checklist Plugin 标记中。在导出期间,将解封
Checklist Plugin 主体,然后使用
cb2jira() 将其转换为
核对清单项数组。这还会将
Codebeamer Wiki 标记转换回特殊
Checklists for Jira 标记语法。
如果 JIRA 字段值使用标准
JIRA Wiki 标记,您的扩展应使用
JiraImportController.exportWikiText(String markup, JiraRestClient restApi 将
Codebeamer Wiki 标记转换为
JIRA Wiki 标记。