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.BasicIssueType;
20 import com.atlassian.jira.rest.client.api.domain.IssueType;
21 import org.codehaus.jettison.json.JSONException;
22 import org.codehaus.jettison.json.JSONObject;
23
24 import java.net.URI;
25
26 public class IssueTypeJsonParser implements JsonObjectParser<IssueType> {
27 private final BasicIssueTypeJsonParser basicIssueTypeJsonParser = new BasicIssueTypeJsonParser();
28
29 @Override
30 public IssueType parse(JSONObject json) throws JSONException {
31 final BasicIssueType basicIssueType = basicIssueTypeJsonParser.parse(json);
32 final String iconUrl = JsonParseUtil.getOptionalString(json, "iconUrl");
33 final URI iconUri = iconUrl == null ? null : JsonParseUtil.parseURI(iconUrl);
34 final String description = JsonParseUtil.getOptionalString(json, "description");
35 return new IssueType(basicIssueType.getSelf(), basicIssueType.getId(), basicIssueType.getName(), basicIssueType
36 .isSubtask(), description, iconUri);
37 }
38 }