ImportFieldValue
要将 JIRA 自定义字段值 (例如,
核对清单项数组
) 转换为相应的
Codebeamer 字段值 (例如 Wiki 标记),
@CustomField 扩展必须提供一种
@CustomField.ImportFieldValue方法
。
该方法必须返回转换为
Codebeamer@CustomField.type 的传入 JIRA 字段值,采用
JSON
格式的。
如果 Jira 自定义字段值可能包含 4 字节
UTF-8
字符,则需要通过
JiraImportController.check4ByteChars(string) 传递此类字符串。
该方法可使用相应类型的参数访问以下上下文信息:
• JiraImportController - 用于接收当前 JIRA 导入的控制器。
• ProjectConfiguration 或 ProjectDto - 用于接收 JIRA 导入的目标项目。
• JiraTrackerSyncConfig - 用于接收 JIRA 导入的目标跟踪器。
• TrackerItemDto - 用于接收目标跟踪器项,需要在其中存储自定义字段值。
• TrackerLayoutLabelDto - 用于接收要导入值的目标字段。
• JsonNode - 用于接收要导入的 JIRA 自定义字段值 (由 JIRA REST API 提供)。
• JiraRestClient - 用于接收要从中导入的远程 JIRA 实例的 REST API。
• ImporterSupport - 用于接收当前导入器。
• ImportStatistics - 用于接收当前导入统计信息。
• 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.wiki.plugins.ChecklistPlugin;
@Component("com.okapya.jira.checklist:checklist")
@CustomField(type="WikiText", of="Checklist")
public class ChecklistForJiraField {
/**
* Convert a <a href="https://okapya.atlassian.net/wiki/spaces/CHKDOC/pages/270172389/Modifying+Checklists+using+a+REST+API">Checklist for JIRA<a>
* into a {@link ChecklistPlugin} body
* @param tracker is the JIRA tracker sync configuration
* @param checklist is the checklist as returned from Jira
* @param controller to {@link JiraImportController#check4ByteChars(String)}
* @return the checklist converted into a {@link ChecklistPlugin} body
*/
public JsonNode jira2cb(JiraTrackerSyncConfig tracker, JsonNode checklist, JiraImportController controller) {
...
}
@CustomField.ImportFieldValue
public String importChecklist(JiraTrackerSyncConfig tracker, JsonNode checklist, JiraImportController controller) {
return ChecklistPlugin.wrapChecklist(jira2cb(tracker, checklist, controller));
}
}
Checklist for Jira
扩展使用
jira2cb() 将
核对清单项数组
转换为
Checklist Plugin 项数组,并将其封装到
Checklist Plugin 标记中:
Checklist Plugin 也是自定义
CodebeamerWiki 插件,其示例源代码
已附上。
请知悉,
Checklist for Jira
使用专用
Markdown 语法
。核对清单项名称必须从此专用 Markdown 转换为
CodebeamerWiki 标记。这会在
jira2cb() 中进行,此处未显示,但已
附上示例源代码。
如果 JIRA 字段值包含标准
JIRA Wiki 标记
,则您的扩展应使用
JiraImportController.convertWikiText(String text, String dflt) 将其转换为
CodebeamerWiki 标记。