How to get FieldMetaBean for Objects of OrderableField and CustomField classes?

Harshit Shihora December 4, 2018

I am new to Jira Plugin Development. I have a need to access the FieldMetaBean of OrderableField and CustomField.

 

I am getting this fields through ComponentAccesor Can anyone help me with it?

1 answer

1 accepted

0 votes
Answer accepted
Harshit Shihora December 12, 2018

Have found the Solution please find below

 

List<Project> extProjects = new ArrayList<Project>();

if(projectIds != null && !projectIds.isEmpty()) {

Long projectId = Long.parseLong(projectIds);

Project project = ComponentAccessor.getProjectManager().getProjectObj(projectId);

if(project != null) {

extProjects.add(project);

}

}else {

extProjects.addAll(ComponentAccessor.getProjectManager().getProjects());

}

JsonArray projJsonArray = new JsonArray();

 

 

if(extProjects != null && !extProjects.isEmpty()) {

for (int i = 0; i < extProjects.size(); i++) {

Project project = extProjects.get(i);

List<IssueType> issueTypes = new ArrayList<IssueType>();

issueTypes.addAll(project.getIssueTypes());

JsonObject projectJson = new JsonObject();

projectJson.addProperty("id", project.getId());

projectJson.addProperty("key", project.getKey());

projectJson.addProperty("name", project.getName());

 

JsonArray issueTypesJsonArray = new JsonArray();

for(IssueType issueType : issueTypes) {

JsonObject issueTypeJson = new JsonObject();

issueTypeJson.addProperty("id", issueType.getId());

issueTypeJson.addProperty("description", issueType.getDescription());

issueTypeJson.addProperty("name", issueType.getName());

issueTypeJson.addProperty("subtask", issueType.isSubTask());

issueTypeJson.addProperty("expand", "fields");

MutableIssue issuePattern = ComponentAccessor.getComponentOfType(IssueFactory.class).getIssue();

    issuePattern.setProjectId(project.getId());

    issuePattern.setIssueTypeId(issueType.getId());

    IssueCreationHelperBean issueCreationHelperBean = ComponentAccessor.getComponentOfType(IssueCreationHelperBean.class);

    FieldScreenRenderer fieldScreenRenderer = issueCreationHelperBean.createFieldScreenRenderer(issuePattern);

Map<String, FieldMetaBean> fieldsMap = getFieldMetadataBeans(issuePattern,issueType,project,fieldScreenRenderer);

Gson gson = new Gson();

issueTypeJson.add("fields", gson.toJsonTree(fieldsMap));

issueTypesJsonArray.add(issueTypeJson);

}

projectJson.add("issuetypes", issueTypesJsonArray);

projJsonArray.add(projectJson);

}

}

 

JsonObjectjsonObject = new JsonObject();

jsonObject.add("projects", projJsonArray);

jsonObject.addProperty("expand", "projects");

jsonObject.addProperty("total", Integer.valueOf(projJsonArray.size()));

return jsonObject;

 

Madhumitha N January 20, 2022

Hello @Harshit Shihora , I am having the issue with FieldMetaBeans, any idea if the method has being modified. Thanks in advance!

Map<String, FieldMetaBean> fieldsMap = getFieldMetadataBeans(issuePattern,issueType,project,fieldScreenRenderer);

Suggest an answer

Log in or Sign up to answer