1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.jira.rest.client.internal.json;
18
19 import com.atlassian.jira.rest.client.api.domain.CimIssueType;
20 import com.atlassian.jira.rest.client.api.domain.IssueType;
21 import com.atlassian.jira.rest.client.api.domain.CimFieldInfo;
22 import org.codehaus.jettison.json.JSONException;
23 import org.codehaus.jettison.json.JSONObject;
24
25 import java.util.Collections;
26 import java.util.Map;
27
28
29
30
31
32
33 public class CimIssueTypeJsonParser implements JsonObjectParser<CimIssueType> {
34
35 final IssueTypeJsonParser issueTypeJsonParser = new IssueTypeJsonParser();
36 final CimFieldsInfoMapJsonParser fieldsParser = new CimFieldsInfoMapJsonParser();
37
38 @Override
39 public CimIssueType parse(final JSONObject json) throws JSONException {
40 final IssueType issueType = issueTypeJsonParser.parse(json);
41 final JSONObject jsonFieldsMap = json.optJSONObject("fields");
42
43 final Map<String, CimFieldInfo> fields = (jsonFieldsMap == null) ?
44 Collections.<String, CimFieldInfo>emptyMap() : fieldsParser.parse(jsonFieldsMap);
45
46 return new CimIssueType(issueType.getSelf(), issueType.getId(), issueType.getName(),
47 issueType.isSubtask(), issueType.getDescription(), issueType.getIconUri(), fields);
48 }
49 }